多个委托和BeginInvoke

时间:2017-12-15 11:37:34

标签: c# asynchronous events

如果我想以异步方式触发包含多个事件处理程序的事件,其中以同步方式调用多个委托但是所有处理程序的处理不会阻止当前线程的执行,我该怎么办?那样做?

我尝试过以下操作,但由于多个代理

而抛出异常
public void Example()
{
    SomethingHappened += (o, e) => Console.WriteLine("A");
    SomethingHappened += (o, e) => Console.WriteLine("B");

    // Exception here because of multiple delegates
    SomethingHappened?.BeginInvoke(this, EventArgs.Empty, x => ((EventHandler)x.AsyncState).EndInvoke(x), SomethingHappened);
}

0 个答案:

没有答案