Infinite loop in release mode

前端 未结 4 549
Happy的楠姐
Happy的楠姐 2020-12-15 19:08

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

4条回答
  •  借酒劲吻你
    2020-12-15 19:58

    Thread Unsafe code is unpredictable. Main problem is changing one thread variable from another thread. Make the variable global or volatile. You can do it by following

    static volatile 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.");
    }
    

提交回复
热议问题