1

我有一个控制台应用程序并且我使用了一个线程池,但是我的应用程序在线程池执行其工作之前退出了。我读到我可以使用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
4

1 回答 1

2

用来WaitHandle.WaitAll等到任务完成

了解更多信息WaitHandle.WaitAll

替代方法是使用 threadpool

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

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

于 2012-12-02T13:43:45.883 回答