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



所以我有两个模块-用于从web服务读取数据的WebservicesClientmodule和用于将WebservicesClientModule获取的数据写入excel表的ExcelModule。因此,我在WebserviceClientmodule上公开了一个事件,ExcelModule订阅了它。我的问题是,这是正确的方法吗?因为如果ExcelModule比WebserviceClientmodule慢,那么我如何同步这两个进程?或者有没有其他更好的方法来实现这种生产者-消费者问题,这样即使从web服务中提取的数据更快,也不会造成问题?

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

有关ReadWriterLockSlim的详细信息:http://msdn.microsoft.com/en-us/library/system.threading.readerwriterlockslim.aspx

最新更新