次のコードをデバッグモードで実行すると、正常に終了して終了します。ただし、次のコードをリリースモードで実行すると、無限ループに陥って終了しません。
static void Main(string[] args)
{
bool stop = false;
new Thread(() =>
{
Thread.Sleep(1000);
stop = true;
Console.WriteLine("Set \"stop\" to true.");
}).Start();
Console.WriteLine("Entering loop.");
while (!stop)
{
}
Console.WriteLine("Done.");
}
無限ループに陥る原因となっている最適化はどれですか?