将静态方法与事件处理程序一起使用

Bil*_*nes 3 c# asynchronous

我继承了一个 C# (.NET 2.0) 应用程序,它有一堆静态方法。我需要将这些方法之一转换为基于异步事件的方法。当方法完成时,我想触发一个事件处理程序。我的问题是,我可以从静态方法中触发事件处理程序吗?如果是这样,如何?

当我谷歌时,我只找到 IAsyncResult 示例。但是,我希望能够执行以下操作:

EventHandler myEvent_Completed;
public void DoStuffAsync()
{
  // Asynchrously do stuff that may take a while
  if (myEvent_Completed != null)
    myEvent_Completed(this, EventArgs.Empty);
} 
Run Code Online (Sandbox Code Playgroud)

谢谢!

Llo*_*oyd 5

过程完全一样,唯一的区别是没有真正的this参考。

static EventHandler myEvent_Completed;

public void DoStuffAsync()
{
    FireEvent();
} 

private static void FireEvent()
{
    EventHandler handler = myEvent_Completed;

    if (handler != null)
        handler(null, EventArgs.Empty);
}
Run Code Online (Sandbox Code Playgroud)