C# .Net4.0 でスレッド化プログラムを作成していますが、問題が発生しました。
スレッドプールとコールバックを使用しています。以下は Main() の私のコードです。
string[] urls = { url1, url2, url3, url4 };
callBack = new WaitCallback(PooledFunc);
for (int i = 0; i < urls.Length; i++)
ThreadPool.QueueUserWorkItem(callBack, urls[i]);
URLから応答を取得する関数もあります
static void PooledFunc(object url)
{
HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;
// Get the response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream Answer = response.GetResponseStream();
// Display the status.
Console.WriteLine(response.Headers);
StreamReader _Answer = new StreamReader(Answer);
string content = _Answer.ReadToEnd();
Console.WriteLine(content);
}
私はそこにいくつかのテストプリントを入れました.上記のコードでは、プログラムはすべてのスレッドを開始したように見えますが、すべてが完了する前に終了し、毎回異なります.
for ループの後に置くConsole.ReadLine();
と、すべてのスレッドが完了するまで待機しているように見えます。
質問:すべてのスレッドが終了するまで待ってから、を使用せずに次のステップに進む方法はありConsole.ReadLine();
ますか?