QUESTION: Why does not this program quit when compiled in Release mode?

The following works as expected when building in Debug – the execution is done after three seconds. But, for some reason, it fails when in Release.

class Program
{
    static void Main(string[] args)
    {
        var w = new Worker();
        while (!w.IsDone);
        Console.WriteLine("The work is done.");
    }
}

class Worker
{
    public bool IsDone;

    public Worker()
    {
        var thread = new Thread(Job);
        thread.Start();
    }

    private void Job()
    {
        Thread.Sleep(3000);
        IsDone = true;
    }
}

Could you explain what is happening? How could you fix it?

Tomorrow, I will share the answer.

Compartilhe este insight:

Elemar Júnior

Sou fundador e CEO da EximiaCo e atuo como tech trusted advisor ajudando diversas empresas a gerar mais resultados através da tecnologia.

Elemar Júnior

Sou fundador e CEO da EximiaCo e atuo como tech trusted advisor ajudando diversas empresas a gerar mais resultados através da tecnologia.

Mais insights para o seu negócio

Veja mais alguns estudos e reflexões que podem gerar alguns insights para o seu negócio:

In the previous post, I asked which function, in the following code, would fill the array with 1’s faster and...
NOTA DO ELEMAR: Este post foi escrito por Fernando Neiva de Paiva e editado por mim. Já fui cético com...
Não são raros os casos onde a distância entre um “desejo” e a “realização” é a “tentativa”. Ou seja, partindo...
O comportamento que descrevo nesse post é extremamente nocivo a carreira de todo técnico. Geralmente resulta em desgaste desnecessário e...
Sabemos que é  inevitável que diferentes áreas da empresa busquem e utilizem mais de uma solução de software, com frequência...
What should be the execution result of the following code? using System; using System.Threading.Tasks; using static System.Console; using static System.IO.File;...
Oferta de pré-venda!

Mentoria em
Arquitetura de Software

Práticas, padrões & técnicas para Arquitetura de Software, de maneira efetiva, com base em cenários reais para profissionais envolvidos no projeto e implantação de software.

× Precisa de ajuda?