C # Constructeur Le constructeur peut-il utiliser des mots clés asynchronisés?
En C #, le constructeur est le point d'entrée de l'instance initialisée. Différente des méthodes ordinaires, le constructeur ne peut pas utiliser le modificateur asynchrone. Cette restriction provient de la contrainte architecturale inhérente.
La raison derrière la limite:
Lors de l'utilisation de mots clés asynchronisés dans le constructeur, le compilateur génère une machine d'état asynchrone. Cette machine d'état doit accéder à l'instance qui est en cours de construction, mais cette instance n'est pas disponible avant l'exécution du constructeur. Cette machine à états asynchrones doit également être sauvée et restaurée dans le cadre du cycle de vie de l'objet, y compris pendant la période de sérialisation et de désertification. Le traitement de cette complexité apportera d'énormes dépenses et des problèmes potentiels de gestion des objets.
Plan de changement:
Bien que l'Async ne puisse pas être utilisé directement dans le constructeur, il existe des stratégies alternatives:
Méthode asynchrone statique:
Créez une méthode asynchrone statique pour renvoyer l'instance de classe. INTÉRIPTION DES INSTANCES Dans une fonction de structure privée appelée par la méthode asynchrone. (Comme indiqué dans le code fourni par la partie "Question Response")Méthode interne:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!