Для изменения размера нажмите или перетащите

RolesExtensionsExecuteInRolesLockAsync - метод

Асинхронно выполняет действие actionFunc внутри эксклюзивной блокировки на вычисление состава ролей или замещений. Никакое другое вычисление не сможет быть выполнено, пока выполняется действие. При этом создаётся операция LockOperationID с указанным описанием operationDescription. Возвращает признак того, что блокировка была взята и действие было выполнено. Значение false возвращается, если блокировку взять не удалось из-за таймаута при ожидании блокировки. При взятии блокировки все операции не обязательно выполняются в одном и том же соединении с базой данных. Использование нескольких соединений может быть полезно для больших таймаутов, чтобы не удерживать одно и то же соединение несколько минут. Чтобы гарантировать выполнение на одном и том же соединении с БД, вызовите метод внутри блока using(dbScope.Create()) { ... }.

Пространство имён:  Tessa.Roles
Сборка:  Tessa (в Tessa.dll) Версия: 3.5.0.19
Синтаксис
public static Task<bool> ExecuteInRolesLockAsync(
	this IOperationRepository operationRepository,
	string operationDescription,
	Func<CancellationToken, Task> actionFunc,
	ILogger logger = null,
	int timeoutSeconds = -1,
	CancellationToken cancellationToken = default
)

Параметры

operationRepository
Тип: Tessa.Platform.OperationsIOperationRepository
Репозиторий, управляющий операциями. Не равен null.
operationDescription
Тип: SystemString
Описание созданной операции. Может быть строкой локализации. Может быть равен null.
actionFunc
Тип: SystemFuncCancellationToken, Task
Асинхронное действие, выполняемое внутри блокировки. Не равно null.
logger (Optional)
Тип: ILogger
Объект, выполняющий логирование, или null, если логирование выполняется объектом по умолчанию.
timeoutSeconds (Optional)
Тип: SystemInt32
Таймаут взятия блокировки в секундах. Если указано отрицательное число (по умолчанию), то используется настройка RolesLockTimeoutSeconds в файле app.json.
cancellationToken (Optional)
Тип: System.ThreadingCancellationToken
Объект, посредством которого можно отменить асинхронную задачу.

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

Тип: TaskBoolean
Асинхронная задача, которая возвращает true, если блокировка успешно взята, действие выполнено, и блокировка освобождена; false, если блокировку не удалось взять из-за таймаута. Во всех остальных случаях выбрасывается исключение.

Примечание об использовании

В Visual Basic и C# этот метод можно вызывать как метод экземпляра для любого объекта типа IOperationRepository. При вызове метода для экземпляра следует опускать первый параметр. Дополнительные сведения см. в разделе Методы расширения (Visual Basic) или Методы расширения (Руководство по программированию в C#).
См. также