Tôi đang viết một Thư viện Lớp sẽ được các ứng dụng khác sử dụng. Tôi đang viết nó trong C# .NET. Tôi gặp sự cố khi kích hoạt các sự kiện trong các lớp học. Đây là những gì tôi cần phải làm ...Làm cách nào để kích hoạt sự kiện trên các lớp học?
public class ClassLibrary
{
public event EventHandler DeviceAttached;
public ClassLibrary()
{
// do some stuff
OtherClass.Start();
}
}
public class OtherClass : Form
{
public Start()
{
// do things here to initialize receiving messages
}
protected override void WndProc (ref message m)
{
if (....)
{
// THIS IS WHERE I WANT TO TRIGGER THE DEVICE ATTACHED EVENT IN ClassLibrary
// I can't seem to access the eventhandler here to trigger it.
// How do I do it?
}
base.WndProc(ref m);
}
}
Sau đó, trong ứng dụng được sử dụng thư viện lớp tôi sẽ làm được điều này ...
public class ClientApplication
{
void main()
{
ClassLibrary myCL = new ClassLibrary();
myCL.DeviceAttached += new EventHandler(myCl_deviceAttached);
}
void myCl_deviceAttached(object sender, EventArgs e)
{
//do stuff...
}
}
Như một sang một bên, hãy chắc chắn rằng bạn sao chép xử lý sự kiện trước khi bắn nó cho an toàn thread: 'var ev = DeviceAtached; if (ev! = null) ev(); ' – Tanzelax