当我在调试模式下运行以下代码时,它将成功完成并退出。但是,如果我在发布模式下运行以下代码,它将陷入无限循环并且永远不会完成。
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.");
}
哪种优化导致它陷入无限循环?