この質問は「SpinWait vs. Block?」に要約できると思いますが、ほぼすべての C# スレッド化チュートリアルで次の呼び出しが提案されている理由について、もっと興味深い答えがあるかもしれないと思いました。
Thread newThread = new Thread(new ThreadStart(ThreadMethod));
newThread.Start()
while (!newThread.isAlive()) ;
Thread.Sleep(1); // Allow the new thread to do some work
次のようにブロックするのとは対照的に:
Thread newThread = new Thread(new ThreadStart(ThreadMethod));
newThread.Start()
while (!newThread.isAlive()) Thread.Sleep(1);
Thread.Sleep(1); // Allow the new thread to do some work
私の非常に力ずくのテスト (DateTime.Ticks への呼び出しで while ループを囲む) では、実際には何も明らかになりません (両方のインスタンスで差が 0 ティックであると言います)。
紡績がより効率的になるように、スレッド作成プロセスは十分に短いですか? それとも、ほとんどのチュートリアルでは回転を推奨していますか?