Warum blockiert mein C# async/wartete Code den UI -Thread und wie behebte ich ihn? [Duplikat]

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Warum blockiert mein C# async/wartete Code den UI -Thread und wie behebte ich ihn? [Duplikat]

by Anonymous » 31 Aug 2025, 12:19

Code: Select all

private async void Button_Click(object sender, EventArgs e)
{
var result = DoWork(); // supposed to be async
MessageBox.Show("Done!");
}

private async Task DoWork()
{
// Simulate long work
Thread.Sleep(5000);
return "Finished!";
}
Ich habe erwartet, dass die Benutzeroberfläche reagiert bleibt, aber stattdessen sperrt das Fenster 5 Sekunden lang zusammen. ConfigureAwait (false) oder etwas anderes? Ich erwartete, dass die Benutzeroberfläche während der Ausführung der Aufgabe reaktionsschnell bleibt, und dann "Fertig!" Sobald sie abgeschlossen ist. Ich habe auch versucht, auf vor Dowork () hinzuzufügen, aber es blockierte die UI.

Code: Select all

await
macht den Code automatisch nicht blockiert, daher bin ich mir nicht sicher, was ich hier falsch mache.

Top