[.NET] Thread.Yield(), Thread.Sleep(0), Thread.Sleep(1)の違いC#.NET .NETでは、現在処理中のスレッドのかわりに、他のスレッドに処理を移すための方法がいくつかある。それぞれの違いについて調べた。 前置き Monitor.Wait/PulseよりもManualResetEventSlimを使うの投稿の中で、.NETのManualResetEventSlimはスピンウェイト中に Thread.Yield() Thread.Sleep(0) Thread.Sleep(1) を呼び出していると書いた。 このコードを読んだとき、驚いて何を調べているか忘れそうになった。 Thread.Yield()はわかる。他のスレッドに実行できるものがあれば、現在実行中のスレッドの実行をとりやめて処理を譲る動作をするのだろう。 Thread.Sleep(