Выполняет заданное действие в блокировке, связанной с настройкам безопасности сотрудника с заданным идентификатором.
Если в течение короткого времени блокировку не удалось получить, т.к. параллельно выполняется другая задача в блокировке, или если сотрудник не найден по заданному идентификатору, то метод выбрасывает исключение InvalidOperationException.
Блокировка снимается даже в том случае, если заданный метод выбросил исключение, после чего исключение выбрасывается наружу.
public Task ExecuteInLockAsync(
Guid userID,
Func<IDbScope, CancellationToken, Task>? actionAsync,
CancellationToken cancellationToken = default
)
Public Function ExecuteInLockAsync (
userID As Guid,
actionAsync As Func(Of IDbScope, CancellationToken, Task),
Optional cancellationToken As CancellationToken = Nothing
) As Task
public:
virtual Task^ ExecuteInLockAsync(
Guid userID,
Func<IDbScope^, CancellationToken, Task^>^ actionAsync,
CancellationToken cancellationToken = CancellationToken()
) sealed
abstract ExecuteInLockAsync :
userID : Guid *
actionAsync : Func<IDbScope, CancellationToken, Task> *
?cancellationToken : CancellationToken
(* Defaults:
let _cancellationToken = defaultArg cancellationToken new CancellationToken()
*)
-> Task
override ExecuteInLockAsync :
userID : Guid *
actionAsync : Func<IDbScope, CancellationToken, Task> *
?cancellationToken : CancellationToken
(* Defaults:
let _cancellationToken = defaultArg cancellationToken new CancellationToken()
*)
-> Task