【问题标题】:Console quits before threads complete (multithreading)控制台在线程完成之前退出(多线程)
【发布时间】:2012-11-20 02:59:22
【问题描述】:

我有一个控制台应用程序并且我使用了一个线程池,但我的应用程序在线程池执行其作业之前退出。我读到我可以使用Console.ReadLine(),但我想在线程池完成工作后立即退出。我在 c# 中找到了示例,但我想要一些关于 vb.net 的东西,我也使用 .net 3.5,所以我不能使用任务并行库。我当前的代码是:

For i As Integer = 0 To addresses.Length - 1
    Dim mydata_obj = New With {Key .address = addresses(i), .subject = messages.subject, .body = messages.body}
    ThreadPool.QueueUserWorkItem(AddressOf doSomething, mydata_obj)
Next

【问题讨论】:

标签: .net vb.net multithreading .net-3.5 threadpool


【解决方案1】:

使用WaitHandle.WaitAll 等待任务完成

更多信息WaitHandle.WaitAll

替代方案是使用threadpool

等待对象也可以使用线程池来实现。在某些情况下,这会更好,因为这意味着您不需要专用线程来等待对象。

ThreadPool 类提供线程池,可用于执行任务、发布工作项、处理异步 I/O、代表其他线程等待以及处理计时器。

【讨论】:

  • 谢谢,什么 waitAll 方法作为参数?因为我试过这个,我给了我编译错误..
  • @user1005633:好的,在答案中提供了链接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多