Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Foo
- {
- public event EventHandler SomeEvent;
- public Foo()
- {
- SomeEvent += FooHandlers.Foo_SomeEvent1;
- SomeEvent += FooHandlers.Foo_SomeEvent2;
- }
- public void RaiseEvents(EventHandler evt, EventArgs args)
- {
- var eventObj = evt;
- var listeners = eventObj.GetInvocationList();
- foreach (var listener in listeners)
- {
- var method = (EventHandler)listener;
- ThreadPool.QueueUserWorkItem(callBack => method(this, args));
- // Handlers will do a lot of things, so I don't want
- // them blocking the Main thread
- }
- }
- public void SomeMethod()
- {
- // do something here
- RaiseEvents(SomeEvent, new EventArgs());
- }
- }
- public static class FooHandlers
- {
- public static void Foo_SomeEvent1(object sender, EventArgs e)
- {
- //do something here
- }
- public static void Foo_SomeEvent2(object sender, EventArgs e)
- {
- //do something different here
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement