Ich habe eine Konsole App und ich möchte Aufgaben nacheinander starten.Task.Wait() wartet nicht auf die Aufgabe zu beenden
Hier ist mein Code:
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
}
Das Problem ist, dass es nicht für die erste Aufgabe nicht warten Ausführung zu beenden. Es feuert die nachfolgenden Aufgaben gleichzeitig ab.
Ich arbeite mit einer Rate begrenzt API, also möchte ich nacheinander tun.
Warum wartet es nicht, bis eine Suche beendet ist, bevor die nächste Suche gestartet wird?
Die Suchmethode verwendet einige Methoden das muss asynchron aufgerufen werden und ich habe einen Fehler beim ersten Aufruf bekommen, also habe ich es auf diese Weise versucht und es hat funktioniert. – Guerrilla
Auch verstehen, dieses Verhalten ist perfekt, Sie warten auf Aufgabe, die eine Async-Methode, die ein 'warten 'hätte, die zurückkehrt und' Task Wait' ist getan, so dass Sie nicht beschweren können –