C#定时检測子线程是否已经完毕

时间:2023-03-09 22:27:02
C#定时检測子线程是否已经完毕

C#定时检測子线程是否已经完毕

C#定时检測子线程是否已经完毕

    class Program
{
static void Main(string[] args)
{
//主线程中启动一个支线程,运行doSomething这种一个方法。
Thread thread = new Thread(new ThreadStart(ThreadRun));
thread.IsBackground = true;//这样能随主程序一起结束
thread.Start();
Console.ReadKey();
} delegate void Delegate_do(); static void ThreadRun()
{
try
{
Delegate_do Delegate_do = new Delegate_do(FindAllProduct);
IAsyncResult result = Delegate_do.BeginInvoke(null, null);
while (!result.IsCompleted)
{
Console.WriteLine("子线程未完毕");
Thread.Sleep(1000);//每隔1秒推断一下是否完毕
}
while (true)
{
if (result.IsCompleted)
{
Console.WriteLine("-------子线程已完毕-------");
break;
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
} static void FindAllProduct()
{
List<int> array = new List<int>();
for (int i = 0; i < 100000000; i++)
{
array.Add(i);
} int m = 0;
foreach (var i in array)
{
m++;
}
Console.WriteLine(m);
}
}