我有一個控制檯應用程序,我希望一個接一個地啓動任務。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,所以我想一個接一個地做。
爲什麼在開始下一個搜索之前它不會等待一個搜索完成?
搜索方法使用的一些方法必須被異步調用,並且在初始嘗試正常調用時出現錯誤,所以我嘗試了這種方式,並且它工作正常。 – Guerrilla
也理解這種行爲是完美的,你正在等待任務包裝一個異步方法,這將有一個'await',這將返回和'任務等待'完成,所以你不能抱怨 –