public static IExtensionPolicyContainer WithLazy(
this IExtensionPolicyContainer policyContainer,
Func<Task<IExtension>> instanceFuncAsync
)<ExtensionAttribute>
Public Shared Function WithLazy (
policyContainer As IExtensionPolicyContainer,
instanceFuncAsync As Func(Of Task(Of IExtension))
) As IExtensionPolicyContainerpublic:
[ExtensionAttribute]
static IExtensionPolicyContainer^ WithLazy(
IExtensionPolicyContainer^ policyContainer,
Func<Task<IExtension^>^>^ instanceFuncAsync
)[<ExtensionAttribute>]
static member WithLazy :
policyContainer : IExtensionPolicyContainer *
instanceFuncAsync : Func<Task<IExtension>> -> IExtensionPolicyContainer Функция, возвращающая ссылку на экземпляр расширения.
Функция используется только при первом получении экземпляра, но есть вероятность, что она будет вызвана несколько раз из различных потоков.
Проверка интерфейса IAsyncInitializable не выполняется, вы можете вызвать асинхронную инициализацию внутри лямбда-выражения.
Если для функции instanceFuncAsync требуется настройка потокобезопасности или не более одного вызова, то используйте перегрузку WithLazy(IExtensionPolicyContainer, AsyncLazyIExtension).