私はコンソールアプリケーションを持っていて、次々にタスクを起動したいと思います。ここでTask.Wait()はタスクの完了を待っていません
は私のコードです:
static void Main()
{
string keywords = "Driving Schools,wedding services";
List<string> kwl = keywords.Split(',').ToList();
foreach(var kw in kwl)
{
Output("SEARCHING FOR: " + kw);
Task t = new Task(() => Search(kw));
t.Start();
t.Wait();
}
Console.ReadLine();
}
static async void Search(string keyword)
{
// code for searching
}
問題は、それが実行を終了する最初のタスクを待たないということです。後続のタスクを同時に起動します。
私はレートリミテッドAPIを使用しているので、私は次々にやりたいと思います。
なぜ次の検索を開始する前に1回の検索が終了するのを待っていないのですか?
検索方法は、いくつかのメソッドを使用していますそれらは非同期的に呼び出されなければならず、最初は普通に呼び出す際にエラーが発生しましたので、この方法で試してみました。 – Guerrilla
また、この動作が完璧で、あなたが待っていることを理解しています。タスクが非同期メソッドをラップすると、 'await'が返され、' Task Wait'が実行されるので、文句を言うことはできません –