C#中的并行事件处理

Kil*_*KRT 2 c# parallel-processing events multithreading

我正在开发一个模块,它必须处理来自外部系统的许多事件.我将使用提供事件(OnNewMessage)的第三方类将一些参数作为输入传递,将两个参数作为输出传递,每个事件需要一堆时间才能被处理.我想以并行方式提供这些事件,以避免阻塞调用者并并行处理多个请求.

这是我的代码示例:

void Init()
{
   provider.OnNewMessage += new OnMessageEventHandler(processEvent);
}

void processEvent(string xml, int …, out string resultXML, out string description)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

在C#3.5中执行此操作的最佳方法是哪种?

谢谢

Fel*_*ano 5

我会使用队列来存储事件,然后从线程池中的一个线程中使用该队列.

  • 你似乎想要你的蛋糕和吃它<g>.您说事件调用者不能阻塞,但同时在加载输出参数之前无法退出.我看不出你怎么能同时拥有这两个! (2认同)