AsyncLazy<T>.SuppressRecursiveFactoryDetection Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene un valor que indica si se debe suprimir la detección de un generador de valores en función de sí mismo.
public bool SuppressRecursiveFactoryDetection { get; init; }
member this.SuppressRecursiveFactoryDetection : bool with get, set
Public Property SuppressRecursiveFactoryDetection As Boolean
Valor de propiedad
El valor por defecto es false.
Comentarios
Un generador de valores que realmente depende de sí mismo (por ejemplo, llamando a GetValueAsync() en la misma instancia) podría interbloquear y, de forma predeterminada, esta clase producirá una excepción si detecta dicha condición. Sin embargo, esta detección se basa en el .NET ExecutionContext, que puede fluir a contextos de "spin off" que no esperan la fábrica y, por tanto, podrían esperar legalmente el resultado de la factoría de valores sin interbloqueo.
Cuando esto fluye incorrectamente, puede provocar InvalidOperationException que se produzca, pero solo cuando el generador de valores no se haya completado, lo que provoca una condición de carrera difícil de reproducir. Este caso se puede resolver llamando a SuppressRelevance() la bifurcación no esperada en o toda la instancia se puede configurar para suprimir esta comprobación estableciendo esta propiedad trueen ExecutionContext.
Cuando esta propiedad se establece trueen , no se realizará la comprobación de fábrica recursiva, pero SuppressRelevance() seguirá llamando a SuppressRelevance() si se proporcionó un JoinableTaskFactory elemento al constructor.