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)