Język

AsyncLazy<T>.SuppressRecursiveFactoryDetection Właściwość

Definicja

Pobiera wartość wskazującą, czy pomijać wykrywanie fabryki wartości w zależności od siebie.

public bool SuppressRecursiveFactoryDetection { get; init; }
member this.SuppressRecursiveFactoryDetection : bool with get, set
Public Property SuppressRecursiveFactoryDetection As Boolean

Wartość właściwości

Wartość domyślna to false.

Uwagi

Fabryka wartości, która naprawdę zależy od siebie (np. przez wywołanie GetValueAsync() tego samego wystąpienia), zakleszczy się, a domyślnie ta klasa zgłosi wyjątek, jeśli wykryje taki warunek. Jednak to wykrywanie opiera się na .NET ExecutionContext, który może przepływać do "spin off" kontekstów, które nie są oczekiwane przez fabrykę, a tym samym mogą legalnie oczekiwać na wynik fabryki wartości bez zakleszczenia.

Gdy przepływy są nieprawidłowo, może to spowodować InvalidOperationException zgłoszenie, ale tylko wtedy, gdy fabryka wartości nie została jeszcze ukończona, co prowadzi do trudnego do odtworzenia stanu wyścigu. Taki przypadek można rozwiązać, wywołując wywołanie SuppressRelevance() rozwidlenia nieoczekanego w pliku ExecutionContextlub można skonfigurować całe wystąpienie tak, aby pominąć tę kontrolę, ustawiając tę właściwość na truewartość .

Gdy ta właściwość jest ustawiona na truewartość , rekursywne sprawdzanie fabryki nie zostanie wykonane, ale SuppressRelevance() nadal będzie wywoływane SuppressRelevance() , jeśli JoinableTaskFactory element został dostarczony do konstruktora.

Dotyczy