线程不再返回退出代码到控制台了

时间:2018-10-10 12:45:26

标签: c# visual-studio

这是我应该担心的事情吗?在测试程序的某个时候,它会将诸如The thread 0x2430 has exited with code 0 (0x0)之类的消息写入控制台。今天,当我进行一些更改后进行测试时,我注意到这些消息不再出现。我实际上并未对代码进行任何大的更改,以致于导致它们无法退出。实际上,如果他们不这样做,程序将陷入等待他们完成的困境。我确实注意到程序的内存使用量在每次开始新的回合后都会增加,然后在超过一定值后“浸入”。我有办法真正让线程返回代码吗?

以下是我使用的两种线程的代码:

    public async void Viive(int i, int d, int t, int sd, bool mode, PictureBox o)
    {
        int c = 0;
        Console.WriteLine("Async " + i);

        while (d <= 750)
        {
            if (mode == true)
            {
                d += t;
            }
            Form1.hedelmat[i]++;
            if(Form1.hedelmat[i] >= 10)
            {
                Form1.hedelmat[i] = 0;
            }

            o.Image = Image.FromFile(Form1.hedelma_img[Form1.hedelmat[i]]);

            await Task.Delay(d);

            c++;
            if (c > sd)
            {
                mode = true;
            }
        }

        Form1.valmis[i] = true;
    }

这是两者中比较常用的。我通常一次使用不同的参数运行四个。

    public async void OdotaLukuja()
    {
        while (valmis[3] == false)
        {
            await Task.Delay(1000);
        }

        Tulokset();
    }

这只是在调用程序的下一步之前,等待以上所有线程均已完成。

自从我记得看到线程退出消息以来,我一直具有这样的核心功能。关于什么可能导致此问题的任何想法?

0 个答案:

没有答案