Ist es vernünftig, Thread.sleep (int) in ASP.NET zu verwenden oder sollte ich eine andere Methode verwenden?
-
26-10-2019 - |
Frage
Ich möchte während einiger Testfunktionen ein leichtes Warten einführen, um einen Serveranruf zu simulieren. Ist es gesund zu verwenden? Thread.Sleep(int)
Um das Warten einzuführen, oder gibt es eine bessere Methode, um den Server Wartezeit zu haben?
Beachten Sie, ich werde lange genug innehieren, damit ich visuell eine ausreichende Verzögerung sehen kann, auch wenn ich nicht erwarte, dass ich eine solche Verzögerung in der tatsächlichen App erkennen kann. Dies ist für mich, um die tatsächliche Verzögerung zu visualisieren, die könnte geschehen.
Ich habe vor, dies sowohl im vs2010 lokalen Debugger -Webserver als auch im IIS 7 auszuführen. Ich bin auf .NET 3.5
Lösung
Thread.Sleep(int)
ist was ich verwenden würde.
Andere Tipps
Wenn Sie MVC verwenden und SessionState sind Ihre Anfragen automatisch serialisiert. Wenn Sie also nach Rennbedingungen mit einem zufälligen Überprüfen Thread.Sleep()
Wert, dann wird die Anfrage B niemals abgeschlossen, bevor A anfordern wird, auch wenn die Zeit, die geschlafen hat, bei weniger schlief.
Dies ist vollkommen in Ordnung für Ihr Test Sceanrio. Solange Sie keine Stress-/Lasttests oder Aufrufe von Diensten durchführen, ersetzen sie synchron und ersetzen sie durch einen einfachen Schlaf.
Wenn Ihr Code asynchrone Serviceanrufe verwendet, möchten Sie möglicherweise etwas mehr der Serviceanrufe emulieren und auf separaten Threads schlafen, als ob Sie Service anrufen, es dauerte jedoch lange. Auf diese Weise verhalten sich ASP.NET normal und Sie können sogar einige Lasttests ausprobieren.