public void WriteToCell(int n)
{
lock (this)
{
if (readFlag)
{
try
{
Monitor.Wait(this);
}
catch (SynchronizationLockException ex)
{
Console.WriteLine(ex.Message);
}
catch (ThreadInterruptedException ex)
{
Console.WriteLine(ex.Message);
}
}
else
{
cellContents = n;
Console.WriteLine("WriteToCell:{0}", cellContents);
readFlag = true;
Monitor.Pulse(this);
}
}
}
正在学习多线程,上面这段代码是一个生产者写数据。如果if后面有else很次都是1.3.5.7。9,不加else是1.2.3.4.5.6.7.8.9,请问加else为什么会这样呀。
{
lock (this)
{
if (readFlag)
{
try
{
Monitor.Wait(this);
}
catch (SynchronizationLockException ex)
{
Console.WriteLine(ex.Message);
}
catch (ThreadInterruptedException ex)
{
Console.WriteLine(ex.Message);
}
}
else
{
cellContents = n;
Console.WriteLine("WriteToCell:{0}", cellContents);
readFlag = true;
Monitor.Pulse(this);
}
}
}
正在学习多线程,上面这段代码是一个生产者写数据。如果if后面有else很次都是1.3.5.7。9,不加else是1.2.3.4.5.6.7.8.9,请问加else为什么会这样呀。
听说某鸟培训有规定,学员必须坚持写blog文章,纳入作业考核,所以……现在有大量误人子弟的博客文章。