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


AsyncLazy<T>.DisposeValueAsync Метод

Определение

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

public System.Threading.Tasks.Task DisposeValueAsync ();
member this.DisposeValueAsync : unit -> System.Threading.Tasks.Task
Public Function DisposeValueAsync () As Task

Возвращаемое значение

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

Комментарии

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

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

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

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

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