Come introdurre un ritardo tra webrequests a un sito in C #?
-
14-10-2019 - |
Domanda
I fare rendendo più richieste a un sito web. Come posso introdurre un ritardo tra le richieste per rallentare il mio processo? Esiste un metodo che mi permette di giusta causa il thread solo aspettare per X secondi prima di procedere?
Soluzione
Sei alla ricerca di Thread.Sleep
?
Si noti che provoca il corrente filo a dormire - non bersaglio in un secondo diverso thread. Ma se hai un loop all'interno di un thread, rendendo più richieste, si potrebbe facilmente aggiungerlo per il ciclo per restringere la frequenza richiesta.
Il metodo Sleep
è sovraccarico - una firma prende un TimeSpan
e l'altro prende un numero di millisecondi. Personalmente mi piacerebbe in generale preferisco il primo, in quanto non lascia spazio ad ambiguità. Ad esempio:
Thread.Sleep(TimeSpan.FromSeconds(2));
è, ovviamente, chiede il filo a dormire per 2 secondi -. Non 2 minuti, 2 millisecondi etc
Altri suggerimenti
System.Threading.Thread.Sleep(x);
... dove x
è il numero di millisecondi per dormire il filo.
Un'alternativa è quella di utilizzare un Timer
e fare una richiesta ogni volta che viene generato l'evento Tick
.