Поделиться через


AsyncLazy<T>.DisposeValue Метод

Определение

Удаляет отложенное инициализированное значение, если оно является одноразовым, и приводит к сбою всех последующих попыток получения значения.

public void DisposeValue ();
member this.DisposeValue : unit -> unit
Public Sub DisposeValue ()

Комментарии

Этот вызов блокирует удаление (что может включать построение самого значения, если оно уже запущено, но еще не завершено), если это первый вызов для удаления значения.

Вызов этого метода приведет к переводу объекта в состояние удаления, в котором последующие вызовы для получения значения будут выдавать .ObjectDisposedException

Если значение уже создано и реализует IDisposable или IAsyncDisposable, оно будет удалено. Если фабрика значений уже запущена, но еще не завершена, ее значение будет удалено после завершения фабрики значений.

Если предыдущие вызовы для получения значения выполняются при вызове этого метода, эти вызовы могут завершиться и их вызывающие могут получить значение, хотя Dispose() , возможно, были или скоро будут вызваны для значения, что приведет к возникновению у этих пользователей ObjectDisposedException.

Обратите внимание на все условия, основанные на значении, реализуемом IDisposable или IAsyncDisposable основанном на фактическом значении, а не на аргументе T типа. Это означает, что, хотя T может быть IFoo (который не реализует IDisposable), конкретный тип, реализующий IFoo , может реализовывать IDisposable и, таким образом, рассматриваться как одноразовый объект, как описано выше.

Применяется к