这里有一个并发字典,它从不同的来源收集信息。每分钟会自动刷新一次数据,并将已经收集到的数据传递给另一个处理程序。
var currentDictionarySnapshot = _currentDictionary;
_currentDictionary = new ConcurrentDictionary<int, string>();
return new ReadOnlyDictionary<int, string>(currentDictionarySnapshot);
我需要做的是使
currentDictionarySnapshot
等待所有引用它的线程完成写操作,并在此之后创建新的 ReadOnlyDictionary
。
如果 ConcurrentDictionary
本身支持此功能,那么可以直接使用,否则应该如何实现呢?
Task.WhenAll(Task1, Task2,...);
方法。 - chouaib