C# Konstruktor Kann der Konstruktor asynchrische Schlüsselwörter verwenden?
In C#ist der Konstruktor der Eingangspunkt der initialisierten Instanz. Anders als gewöhnliche Methoden kann der Konstruktor den asynchronen Modifikator nicht verwenden. Diese Einschränkung stammt aus der inhärenten architektonischen Einschränkung.
Der Grund für die Grenze:
Wenn der Compiler asynchrische Schlüsselwörter im Konstruktor verwendet, erzeugt der Compiler eine asynchrone Zustandsmaschine. Diese Zustandsmaschine muss auf die Instanz zugreifen, die konstruiert wird. Diese Instanz ist jedoch nicht verfügbar, bevor der Konstruktor ausgeführt wird. Diese asynchrone Zustandsmaschine muss auch im Rahmen des Lebenszyklus des Objekts gerettet und wiederhergestellt werden, einschließlich der Serialisierung und Wüstenbildung. Die Behandlung dieser Komplexität führt zu enormen Ausgaben und potenziellen Fragen des Objektmanagements.
Planungsplan:
Obwohl der Async im Konstruktor nicht direkt verwendet werden kann, gibt es einige alternative Strategien:
statische asynchrone Methode:
Erstellen Sie eine statische asynchrone Methode zur Rückgabe der Klasseninstanz. Initiieren Sie Instanzen in einer privaten Strukturfunktion, die von der asynchronen Methode bezeichnet wird. (Wie im Code im Teil "Frage Antwort" angegeben)Interne Methode:
Das obige ist der detaillierte Inhalt vonKönnen C# -Konstruktoren asynchron sein (asynchronisiert)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!