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 に答える