AsyncLazy<T>.SuppressRecursiveFactoryDetection Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient une valeur indiquant s’il faut supprimer la détection d’une fabrique de valeurs en fonction de lui-même.
public bool SuppressRecursiveFactoryDetection { get; init; }
member this.SuppressRecursiveFactoryDetection : bool with get, set
Public Property SuppressRecursiveFactoryDetection As Boolean
Valeur de propriété
La valeur par défaut est false.
Remarques
Une fabrique de valeurs qui dépend réellement d’elle-même (par exemple, en appelant GetValueAsync() sur la même instance) interblocage, et par défaut, cette classe lève une exception si elle détecte une telle condition. Toutefois, cette détection s’appuie sur le .NET ExecutionContext, qui peut circuler vers des contextes « spin off » qui ne sont pas attendus par la fabrique, et peut donc attendre légalement le résultat de la fabrique de valeur sans interblocage.
Lorsque ce flux est incorrect, il peut InvalidOperationException être levée, mais uniquement lorsque la fabrique de valeur n’a pas déjà été terminée, ce qui entraîne une condition difficile à reproduire. Un tel cas peut être résolu en appelant SuppressRelevance() autour du fourche non attendu dans ExecutionContext, ou l’instance entière peut être configurée pour supprimer cette vérification en définissant cette propriété sur true.
Lorsque cette propriété est définie truesur , la vérification de la fabrique récursive n’est pas effectuée, mais SuppressRelevance() appelle toujours SuppressRelevance() si un JoinableTaskFactory a été fourni au constructeur.