モニタークラスのパルスとウェイトについて質問です。以下はコードの抜粋です。私の質問は、コードが動かなくなることです
// <<----------
ロッカーが空くまで?
{
check = false;
new Thread(pulseWaitFun).Start();
Console.Writeline("Threading tutorial");
lock (locker) // <<-----------
{
check = true;
Monitor.Pulse(locker);
}
Console.ReadLine();
}
static void pulseWaitFun()
{
lock (locker)
{
if(check != true)
{
Thread.Sleep(20000);
Monitor.Wait(locker);
}
}
Console.WriteLine("Woken !!");
}
2 番目の質問Monitor.Pulse(locker);
です。次の実行シーケンスはどうなりますか?