C# 生产者-消费者模型中的事件处理

C# 生产者-消费者模型中的事件处理,c#,.net,web-services,event-handling,vsto,C#,.net,Web Services,Event Handling,Vsto,所以我有两个模块-WebServiceClient模块用于读取web服务中的数据,ExcelModule用于将WebServiceClient模块获取的数据写入excel工作表。所以我在WebServiceClient模块和订阅它的ExcelModule中发现了一个事件。我的问题是,这样做是否正确,因为如果ExcelModule比WebServiceClient模块慢,那么如何同步这两个进程?或者有没有其他更好的方法来实现这种产品-消费者问题,以便即使从web服务获取的数据更快,也不会导致问题?

所以我有两个模块-WebServiceClient模块用于读取web服务中的数据,ExcelModule用于将WebServiceClient模块获取的数据写入excel工作表。所以我在WebServiceClient模块和订阅它的ExcelModule中发现了一个事件。我的问题是,这样做是否正确,因为如果ExcelModule比WebServiceClient模块慢,那么如何同步这两个进程?或者有没有其他更好的方法来实现这种产品-消费者问题,以便即使从web服务获取的数据更快,也不会导致问题?

有多种方法可以实现您的需求。由于您似乎只有两个线程在运行,它们处理相同的数据集,因此我将使用ReadWriterLockSlim类,但是也可以使用Monitor类或Mutex。在我看来,最容易实现的是ReadWriterLockSlim类

有关ReadWriterLockSlim的更多信息: