我想要做的是List
在多个线程上访问 a 。这是线程安全的,所以我可以毫无顾虑地做到这一点。唯一的问题是偶尔,我必须修改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;
}