我想要做的就是在多個線程上訪問List
。這是線程安全的,所以我可以不用擔心。唯一的問題是,偶爾我必須修改List
。所以,我想阻止其他線程僅在修改時才使用List
。並行線程安全列表訪問和修改
這就是我在想什麼,有沒有更好的方法?
volatile bool isReading = false;
volatile bool isWriting = false;
object o = new object();
public void StartRead()
{
lock (o)
{
while (isWriting || isReading) ;
isReading = true;
}
}
public void StopRead()
{
isReading = false;
}
public void StartWrite()
{
lock (o)
{
while (isReading) ;
isWriting = true;
}
}
public void StopWrite()
{
isWriting = false;
}
完美!我沒有意識到System.Threading中有這麼多。 – Jay