asynchrones Ereignisbehandlungsverfahren: In -tpth -Diskussion
Verwenden Sie async void
-Methode des "Vergessens" vermieden wird, ist die Frage: Ist das asynchrone async void
Ereignisverarbeitungsverfahren ebenfalls vermieden? void
<code class="language-csharp">private async void Form_Load(object sender, System.EventArgs e) { await Task.Delay(2000); // 执行异步操作 // ... }</code>
<code class="language-csharp">Task onFormLoadTask = null; private void Form_Load(object sender, System.EventArgs e) { this.onFormLoadTask = OnFormLoadTaskAsync(sender, e); } private async Task OnFormLoadTaskAsync(object sender, System.EventArgs e) { await Task.Delay(2000); // 执行异步操作 // ... }</code>
Leitfaden und potenzielle Risiken
überraschenderweise werden die allgemeinen Richtlinien empfohlen, um Ereignisverarbeitungsverfahren sind in der Regel anonym, um auf bestimmte Ereignisse zu reagieren und nicht am traditionellen Steuerungsprozess teilzunehmen. async void
async void
Wenn im Verarbeitungsprogramm asynchroner Ereignisse Abnormalitäten auftreten, verbreiten sie sich automatisch auf das abnormale Verarbeitungsprogramm des UI -Threads, der leichter mit ihnen umzugehen ist.
Code -Lesbarkeit
Das obige ist der detaillierte Inhalt vonAsynchrone Ereignishandler: „async void' verwenden oder nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!