在我的C#程序中,线程访问共享数据缓存。需要定期更新此数据缓存,并且我希望所有访问线程等到更新完成。更新数据缓存时。我想要发信号通知所有线程并恢复访问。我不确定用于此类场景的.NET并发构造是什么?
答案 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 定义一个支持单个编写器和多个读取器的锁。