我有一个控制台应用程序,我希望一个接一个地启动任务。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',这将返回和'任务等待'完成,所以你不能抱怨 –