我有一个 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));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)