C#多线程控制台应用程序 – 控制台在线程完成之前退出

我有一个c#控制台应用程序,最多可以创建5个线程.

线程执行正常,但UI线程在完成其工作时关闭.

有没有办法保持主UI线程运行,只要侧线程正在运行?

foreach (var url in urls)
{
    Console.WriteLine("starting thread: " + url); 
    ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(myMethod), url);
}

我按照上面的代码开始了我的线程.

最佳答案
ThreadPool中的线程是后台线程,这意味着现有的应用程序不会等待它们完成.

你有几个选择:

>等待例如信号量
>等待Sleep()的计数器,非常粗糙,但对于一个简单的控制台应用程序可以.
>使用TPL,Parallel.ForEach(urls,url => MyMethod(url));

转载注明原文:C#多线程控制台应用程序 – 控制台在线程完成之前退出 - 代码日志