Ich mache mehrere Anfragen an eine Website. Wie kann ich eine Verzögerung zwischen Anfragen zur Verlangsamung meines Prozesses einführen? Gibt es eine Methode, die es mir erlaubt, den Thread einfach nur X Sekunden warten zu lassen, bevor ich fortfahre?Wie man eine Verzögerung zwischen Webanfragen zu einer Site in C# einführt?
Antwort
Suchen Sie nach Thread.Sleep
?
Beachten Sie, dass es den aktuellen Thread zu schlafen verursacht - Sie zielen nicht auf einen verschiedenen Faden. Aber wenn Sie eine Schleife innerhalb eines Threads haben und mehrere Anfragen stellen, können Sie sie einfach in die Schleife einfügen, um Ihre Anfragegeschwindigkeit einzuschränken.
Die Sleep
Methode ist überlastet - eine Unterschrift dauert eine TimeSpan
und die andere dauert eine Anzahl von Millisekunden. Persönlich würde ich im Allgemeinen die erste bevorzugen, da es keinen Raum für Mehrdeutigkeiten lässt. Zum Beispiel:
Thread.Sleep(TimeSpan.FromSeconds(2));
fragen offensichtlich den Faden 2 Sekunden lang schlafen - nicht 2 Minuten, 2 Millisekunden usw.
System.Threading.Thread.Sleep(x);
... wo x
die Anzahl der Millisekunden ist, den Faden zu schlafen.
Eine Alternative besteht darin, eine Timer
zu verwenden und jedes Mal, wenn das Ereignis Tick
ausgelöst wird, eine Anforderung auszuführen.
+1 Für die Erwähnung von 'Sleep' eine' TimeSpan'. Das ist eine gute Idee, über die ich nie wirklich nachgedacht hätte. – Brian