When I run the following code in debug mode, it\'ll successfully finish and exit. However, if I run the following code in release mode, it\'ll get stuck i
Looks like some sort of optimization for value of local variable - changing to a field make it terminate ok (note that volatile or correct locking should be used in actual code):
using System;
using System.Threading;
class Program
{
    static bool stop = false;
    static void Main(string[] args)
    {
        new Thread(() =>
        {
            Thread.Sleep(1000);
            stop = true;
            Console.WriteLine("Set \"stop\" to true.");
        }).Start();
        Console.WriteLine("Entering loop.");
        while (!stop)
        {
        }
        Console.WriteLine("Done.");
    }
}