我有一个控制台应用程序,我使用线程池,但我的应用程序在线程池执行其作业之前退出。我读到我可以使用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
答案 0 :(得分:2)
使用WaitHandle.WaitAll
等待任务完成
了解更多信息WaitHandle.WaitAll
替代方案是使用threadpool
使用线程池也可以实现等待对象。在某些情况下,这更好,因为这意味着您不需要专用线程来等待对象。
ThreadPool类提供一个线程池,可用于执行任务,发布工作项,处理异步I / O,代表其他线程等待,以及处理计时器。