C#中的并行事件处理

| 我正在开发一个模块,该模块必须处理来自外部系统的许多事件。 我必须使用第三方类来提供一个事件(OnNewMessage),该事件将一些参数作为输入,将两个参数作为输出,每个事件都需要花费一些时间才能进行处理。我想以并行方式处理这些事件,以避免阻塞调用者并并行处理多个请求。 这是我的代码示例:
void Init()
{
   provider.OnNewMessage += new OnMessageEventHandler(processEvent);
}

void processEvent(string xml, int …, out string resultXML, out string description)
{
   ...
}
在C#3.5中,哪种方法最好? 谢谢     
已邀请:
        我将使用队列来存储事件,然后从线程池的线程束中消耗该队列。     
        这是修改后的答案: 您不想阻止调用方,也希望调用方等待输出。然后,我认为您需要的是Web服务。您为任务定义一个Web服务。然后,调用者调用Web服务以获取结果。 Web服务支持并行处理。 我建议您使用WCF。 WCF具有请求/答复消息模式,其中一个端点从另一个端点请求数据。第二个端点答复。 WCF是一个很大的话题,很抱歉,我无法在这里详细介绍。但是您可以轻松地从此视频开始。这是更多适合您的视频。 ====================下面是旧答案==================== 您可以为每个事件启动一个新线程:
void processEvent(string xml, int …, out string resultXML, out string description)
{
   new Thread(Handler).Start(xml);
}

void Handler(object xml)
{
    //do the actual work here
}
每个调用方请求都会立即被线程响应,因此不会阻塞调用方。并且每个线程在完成请求处理后将自动退出,因此系统中不会有太多线程。 这只是一个简单的解决方案。您可能需要考虑线程池以提高性能。     

要回复问题请先登录注册