Heim > Backend-Entwicklung > C++ > Warum sollte ich Async-Void-Methoden in C# vermeiden?

Warum sollte ich Async-Void-Methoden in C# vermeiden?

Mary-Kate Olsen
Freigeben: 2024-12-31 06:07:08
Original
625 Leute haben es durchsucht

Why Should I Avoid Async Void Methods in C#?

Die Fallstricke von Async Void: Eine detaillierte Erklärung

Async Void-Methoden haben sich als schlechte Praxis beim Codieren etabliert. Dieser Artikel befasst sich eingehender mit der Frage, warum genau dies der Fall ist, und bezieht sich dabei auf den bekannten Artikel „Avoiding Async Void“.

Gründe für die Vermeidung von Async Void

  • Diskrepanzen bei der Fehlerbehandlung:
    Im Gegensatz zu Synchronisierungsmethoden behandeln asynchrone Void-Methoden Ausnahmen unterschiedlich. Ausnahmen, die in einer asynchronen Void-Methode auftreten, breiten sich möglicherweise nicht nach oben aus und können schwierig zu erkennen sein.
  • Herausforderungen bei der Zusammensetzung:
    Asynchrone Void-Methoden behindern die Organisation und Wiederverwendung von Code. Da diese Methoden keine Aufgabe zurückgeben, wird es schwierig, sie in einem größeren asynchronen Workflow zusammenzufassen.
  • Testbarkeitsprobleme:
    Das Testen asynchroner Void-Methoden ist eine Aufgabe für sich. Es erfordert eine sorgfältige Planung, um eine angemessene Abdeckung des Codes und seiner potenziellen Ausnahmen sicherzustellen.

Zusätzliche Überlegungen

Async void gilt als Anomalie im Bereich Async /await Sprachen. Die meisten Sprachen, einschließlich F#, Python, JavaScript und TypeScript, unterstützen es nicht. Die Einbeziehung in C#/VB diente in erster Linie dazu, asynchrone Event-Handler zu unterstützen.

Ein bevorzugter Ansatz

In Ihrem Beispiel, wenn Sie Ihren Code anpassen, um asynchrone Void-Event-Handler zu verwenden :

protected override async void OnLoad(EventArgs e)
{
    if (CustomTask == null)
        await PrimeCustomTask();
}

private async Task PrimeCustomTask()
{...}
Nach dem Login kopieren

Dann beschränken sich die Nachteile von async void auf den Event-Handler, der Ausnahmebehandlung, Zusammensetzung, und Tests überschaubarer.

Das obige ist der detaillierte Inhalt vonWarum sollte ich Async-Void-Methoden in C# vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage