gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 18:12:32 28 4
gpt4 key购买 nike

我有一个最多可创建 5 个线程的 C# 控制台应用程序。

线程执行正常,但 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# 多线程控制台应用程序 - 控制台在线程完成之前退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7759001/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com