这是我应该担心的事情吗?在测试程序的某个时候,它会将诸如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();
}
这只是在调用程序的下一步之前,等待以上所有线程均已完成。
自从我记得看到线程退出消息以来,我一直具有这样的核心功能。关于什么可能导致此问题的任何想法?