C#中的并行事件处理我正在开发一个模块,它必须处理来自外部系统的许多事件。我正在使用提供事件(OnNewMessage)的第三方类来传递一些参数作为输入和两个参数作为输出,并且每个事件都需要大量时间来处理。我想并行处理这些事件以避免阻塞调用者并并行处理多个请求。这是我的代码示例:voidInit(){provider.OnNewMessage+=newOnMessageEventHandler(processEvent);}voidprocessEvent(stringxml,int...,outstringresultXML,outstringdescription){...}在C#3.5中哪种方法最好?谢谢我将使用队列来存储事件,然后从线程池中的线程使用该队列。这是修改后的答案:您不想阻止调用者,您还希望调用者等待输出。那么我认为你需要的是一个网络服务。您为任务定义Web服务。调用者调用网络服务来获取结果。Web服务支持并行处理。我建议你使用WCF。WCF有一个请求/回复消息模式,其中一个端点从第二个端点请求数据。第二个端点回复。WCF是一个很大的话题,很抱歉我不能在这里详细介绍。但是您可以轻松地从这个视频开始。这里有更多视频供您使用。=====================下面是旧答案====================你可以开始每个事件一个新线程:voidprocessEvent(stringxml,int…,outstringresultXML,outstringdescription){newThread(Handler).Start(xml);}voidHandler(objectxml){//在这里做实际工作}per一个调用者的请求将立即由一个线程提供服务,因此调用者不会被阻塞。每个线程处理完请求后自动退出,所以系统中不会出现过多的多线程。这只是一个简单的解决方案。您可能需要考虑线程池以获得更好的性能。以上就是《C#学习教程:C#并行事件处理》的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
