Funktionen und andere Operationen arbeiten auf Ein Thread ist nur eine Folge von Operationen, aber Sie können mehrere Threads gleichzeitig haben. In gewisser Hinsicht ist der wichtigste Thread der Hauptthread, der häufig als UI-Thread bezeichnet wird, da hier die Benutzeroberfläche gesteuert wird.
Bei langwierigen Vorgängen (wie dem Abrufen von Daten aus dem Internet) möchten Sie nicht auf diese Daten im Hauptthread warten, da Sie diesen Thread daran hindern, auf Benutzereingaben zu reagieren (z. B. auf Abbrechen klicken) button)
Um dies zu lösen, setzen Sie die lange laufende Aufgabe auf einen eigenen Thread. C# macht das einfach, Sie verwenden nur das Schlüsselwort await, und die Funktion wartet auf den Abschluss der Arbeit, ohne den Hauptthread zu blockieren.
Das Wort erwarten ist ein "Schlüsselwort" - seine Verwendung ist für diesen Zweck reserviert. Um zu signalisieren, dass eine Funktion eine Wartezeit hat, müssen Sie die Funktion mit async markieren. Wenn Sie es async markieren, erwartet der Compiler mindestens eine Wartezeit.
Ihre Beispiele:
public async void ReadData(filepath)
{
CreateDoc("hello"); //<------ Why I can't do that ?
}
Sie haben diese Methode Asynchron markiert, aber Sie haben noch keine erwartet
this helps
jesse
Ich gehe davon gefunden Sie * etwas *, also was hast du bisher entdeckt? Worum fragst du eigentlich hier? der unterschied zwischen a/sync oder wie die fehler in ihrem code zu beheben – Sayse
Ich vermute die eigentliche frage ist "warum funktioniert meine async void methode nicht". Weil sie immer nur für Event-Handler verwendet werden sollten. Viele und viele Beiträge dazu schon, wir brauchen keinen anderen mehr. Danke, dass du versucht hast beizutragen. –
Hans, es gibt viele Einsatzmöglichkeiten neben Eventhandlern. –