Heim >Backend-Entwicklung >C++ >Wie implementiert man generische Zeitüberschreitungen in C#, um zu verhindern, dass Code hängen bleibt?
Implementierung eines universellen Timeout-Mechanismus in C#
Bei der Interaktion mit unzuverlässigem Code ist es entscheidend, einen gemeinsamen Mechanismus zu implementieren, um bestimmte Codeblöcke mit definierten Zeitüberschreitungen auszuführen. Dieser allgemeine Ansatz kann auf verschiedene Szenarien angewendet werden und erhöht die Robustheit des Codes.
Eine der größten Herausforderungen besteht darin, lang laufende Aufgaben zu beenden, wenn eine Zeitüberschreitung auftritt. Um dieses Problem zu lösen, verwenden wir einen umschlossenen Delegaten. Dieser Delegat übergibt den Ausführungsthread an eine lokale Variable, sodass der Thread bei Bedarf beendet werden kann.
Der bereitgestellte C#-Code enthält eine statische Methode CallWithTimeout
, die einen angegebenen Vorgang innerhalb eines angegebenen Zeitlimits ausführt. Bei einer Zeitüberschreitung bricht diese Methode den laufenden Thread ab und löst eine TimeoutException
-Ausnahme aus.
Beispielverwendung:
<code class="language-csharp">class Program { static void Main(string[] args) { // 五秒钟的方法,超时时间为六秒钟 CallWithTimeout(FiveSecondMethod, 6000); } static void FiveSecondMethod() { Thread.Sleep(5000); } }</code>
Dieser Code zeigt, wie ein universeller Timeout-Mechanismus in C# implementiert wird, der es Entwicklern ermöglicht, zeitaufwändige Aufgaben elegant zu erledigen und zu verhindern, dass Code während der Ausführung hängen bleibt.
Das obige ist der detaillierte Inhalt vonWie implementiert man generische Zeitüberschreitungen in C#, um zu verhindern, dass Code hängen bleibt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!