线程事件处理(C#)

Seb*_*ler 5 .net events multithreading event-handling

我有一个关于使用C#进行事件处理的问题.我听A级投掷的事件.现在当抛出事件时,执行一个执行某些操作的方法.此方法有时必须等待来自数据源或类似的响应.

我认为事件处理是同步的,所以将处理一个又一个事件.有可能使这个异步吗?我的意思是,当执行该方法但必须等待数据源的响应时,可以处理另一个事件?

提前致谢

塞巴斯蒂安

Fre*_*örk 11

我假设您可以生成需要在新线程中等待的代码.这将导致事件处理程序不阻塞引发事件的线程,以便它可以在线调用下一个事件处理程序.(C#3.5样本)

private void MyPotentiallyLongRunningEventHandler(object sender, SomeEventArgs e)
{
    ThreadPool.QueueUserWorkItem((state) => {
        // do something that potentially takes time

        // do something to update state somewhere with the new data
    });
}
Run Code Online (Sandbox Code Playgroud)