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 и, таким образом, рассматриваться как одноразовый объект, как описано выше.