AsyncLazy<T>.SuppressRecursiveFactoryDetection Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob die Erkennung einer Wertfactory abhängig von sich selbst unterdrückt werden soll.
public bool SuppressRecursiveFactoryDetection { get; init; }
member this.SuppressRecursiveFactoryDetection : bool with get, set
Public Property SuppressRecursiveFactoryDetection As Boolean
Eigenschaftswert
Der Standardwert ist false.
Hinweise
Eine Wertfactory, die wirklich von sich selbst abhängt (z. B. durch Aufrufen GetValueAsync() derselben Instanz), würde deadlocken, und standardmäßig löst diese Klasse eine Ausnahme aus, wenn eine solche Bedingung erkannt wird. Diese Erkennung basiert jedoch auf dem .NET ExecutionContext, der zu "Spin off"-Kontexten fließen kann, die nicht von der Fabrik erwartet werden, und somit das Ergebnis der Wertfabrik ohne Deadlocking abwarten könnte.
Wenn dies unsachgemäß fließt, kann dies dazu führen InvalidOperationException , dass sie ausgelöst wird, aber nur, wenn die Wertfabrik noch nicht abgeschlossen wurde, was zu einer schwierigen Reproduktion des Rennzustands führt. Ein solcher Fall kann durch Aufrufen SuppressRelevance() der nicht erwarteten Verzweigung ExecutionContextaufgelöst werden, oder die gesamte Instanz kann so konfiguriert werden, dass diese Überprüfung unterdrückt wird, indem Sie diese Eigenschaft auf truefestlegen.
Wenn diese Eigenschaft auf true festgelegt ist, wird die rekursive Factoryüberprüfung nicht ausgeführt, wird jedoch SuppressRelevance() weiterhin aufgerufen SuppressRelevance() , wenn dem Konstruktor eine JoinableTaskFactory Bereitgestellt wurde.