工作人员引发静态事件,以便消费者可以订阅它而无需将相同的实例保存到工作者

时间:2017-01-27 22:12:09

标签: c# events event-handling

我有一个非静态类,它完成了某些事情,当它完成它时,我想在我的系统中引发一个事件。

如果我这样做的话可以吗:

public class Worker
{
  public void DoWork()
  {
    SystemEvents.RaiseWorkDoneEvent(this, ...);
  }
}

public static class SystemEvents
{
  public delegate void WorkDoneEventHandler(object sender, EventArgs e);
  public static event WorkDoneEventHandler WorkDoneEvent;

  public void RaiseWorkDoneEvent(...)
  {
    WorkDoneEvent(...)
  }
}

public class Consumer
{
  // subscribe to SystemEvents.WorkDoneEvent
  // This class has no instance (or not the same instance) of Worker when it fires the event.
}

我理解该事件属于Worker,但是,当此事件发生时,我的Consumer中不会有该实例。

这种方法可以吗?

0 个答案:

没有答案