我有一个ac#console应用程序,最多可以创建5个线程.
线程执行正常,但UI线程在完成其工作时关闭.
有没有办法保持主UI线程运行,只要侧线程正在运行?
foreach (var url in urls)
{
Console.WriteLine("starting thread: " + url);
ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(myMethod), url);
}
Run Code Online (Sandbox Code Playgroud)
我按照上面的代码开始了我的线程.
ThreadPool中的线程是后台线程,这意味着现有的应用程序不会等待它们完成.
你有几个选择:
Parallel.ForEach(urls, url => MyMethod(url));如果您使用的是.NET 4.0:
var tasks = new List<Task>();
foreach(var url in urls)
{
tasks.Add(Task.Factory.StartNew(myMethod, url));
}
// do other stuff...
// On shutdown, give yourself X number of seconds to wait for them to complete...
Task.WaitAll(tasks.ToArray(), TimeSpan.FromSeconds(30));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21777 次 |
| 最近记录: |