哪个C#并发构造用于简单的waitAll和signalAll场景。

时间:2014-07-07 23:59:31

标签: c# concurrency

在我的C#程序中,线程访问共享数据缓存。需要定期更新此数据缓存,并且我希望所有访问线程等到更新完成。更新数据缓存时。我想要发信号通知所有线程并恢复访问。我不确定用于此类场景的.NET并发构造是什么?

2 个答案:

答案 0 :(得分:1)

一个简单的锁可以解决这个问题:

class RestrictedCache
{
    private Cache cache = //...;
    private object _lock = new{};
    public object Get(string key)
    {
        lock(_lock)
        {
            return cache[key];
        }
    }
    public void Set(string key, object value)
    {
        lock(_lock)
        {
            cache[key]=value;
        }
    }
}

答案 1 :(得分:1)

经过一番搜索后,我自己找到了答案,以备不时之需:

ReaderWriterLock Class 定义一个支持单个编写器和多个读取器的锁。