预防线程占用资源时间过长,导致资源被意外回收的线程释放在重启
预防线程占用资源时间过长,导致资源被意外回收的线程释放在重启
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace ThreadRedoTest
{
class Program
{
static void Main(string[] args)
{
int leng = 2929;
int leng_tmp = 0;
int i = 0;
Thread mythd1 = new Thread(output);
Thread mythd2 = new Thread(waiting);
mythd1.Start();
mythd2.Start();
Console.ReadLine();
void output()
{
for (; i < 10; i++)
{
if (leng_tmp < leng)
{
leng_tmp++;
Console.WriteLine(i + "+" + leng_tmp);
}
}
}
void waiting()
{
while (true)
{
if (mythd1.ThreadState == ThreadState.Stopped)
{
Console.WriteLine("ThreadState==Stopped判断----1");
if (leng_tmp < leng)
{
Console.WriteLine("leng_tmp < leng判断----2");
mythd1.Abort();
Thread.Sleep(1);
mythd1 = new Thread(output);
mythd1.Start();
Thread.Sleep(1000);
Console.WriteLine("mythd1.Start()启动-----3");
}
else {
break;
}
}
Thread.Sleep(1000);
}
}
}
}
}
这里
mythd1 = new Thread(output);
mythd1.Start();
start mythd1没有启动成功是什么原因?
启动成功应该是会跑一圈output()才是的,求解