Что я хочу сделать, так это получить доступ к 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