ExecuteAsync – вызвать асинхронный обработчик
<< Click to Display Table of Contents >> Объектная модель > CoreEntities – администрирование ExecuteAsync – вызвать асинхронный обработчик |
![]() ![]() |
Метод вызывает один или несколько асинхронных обработчиков. Доступен только в серверном коде.
С помощью перегрузок метода с параметрами startedNotification и completedNotification можно задавать всплывающее сообщение, которое выводится пользователю при запуске и завершении выполнения обработчика. По умолчанию после вызова метода с этими параметрами в системе срабатывает тайм-аут. В течение двух секунд ожидается синхронное завершение обработчиков. В это время в веб-клиенте отображается индикатор выполнения действия, и если обработчики не завершены, то для пользователя появляется сообщение. Например, после согласования договор преобразуется в формат PDF с отметкой об электронной подписи. Если преобразование занимает больше 2 секунд, то система уведомляет пользователя об этом.
С помощью перегрузок метода с параметром timeout можно задать свое значение тайм-аута. Например, увеличить его, чтобы подождать, пока выполнятся обработчики, либо совсем убрать время ожидания.
Пример сообщения, если запущенный асинхронный обработчик завершился с ошибкой:
При успешном завершении обработчика сообщение имеет вид:
Сообщение не отображается, если:
•время выполнения асинхронного обработчика меньше заданного значения в параметре timeout (по умолчанию 2 секунды);
•пользователь выходит из системы до завершения обработчика. При последующем входе в систему сообщение также не будет отображаться.
В текст сообщения также можно добавить гиперссылку, например на объект системы.
Перегрузки
ExecuteAsync() |
Вызвать один или несколько асинхронных обработчиков |
---|---|
ExecuteAsync(string completedNotification) |
Вызвать один или несколько асинхронных обработчиков и показать текущему пользователю сообщение о завершении без ошибок |
ExecuteAsync(string completedNotification, TimeSpan timeout) |
Вызвать один или несколько асинхронных обработчиков и показать текущему пользователю сообщение о завершении без ошибок. Задать тайм-аут ожидания синхронного завершения обработчиков |
ExecuteAsync(string completedNotification, IUser user) |
Вызвать один или несколько асинхронных обработчиков и показать указанному пользователю сообщение о завершении без ошибок |
ExecuteAsync(string completedNotification, IUser user, TimeSpan timeout) |
Вызвать один или несколько асинхронных обработчиков и показать указанному пользователю сообщение о завершении без ошибок Задать тайм-аут ожидания синхронного завершения обработчиков |
ExecuteAsync(string startedNotification, string completedNotification) |
Вызвать один или несколько асинхронных обработчиков, при запуске и по завершении без ошибок показать сообщения текущему пользователю |
ExecuteAsync(string startedNotification, string completedNotification, TimeSpan timeout) |
Вызвать один или несколько асинхронных обработчиков, при запуске и по завершении без ошибок показать сообщения текущему пользователю. Задать тайм-аут ожидания синхронного завершения обработчиков |
ExecuteAsync(string startedNotification, string completedNotification, IUser user) |
Вызвать один или несколько асинхронных обработчиков, при запуске и по завершении без ошибок показать сообщения указанному пользователю |
ExecuteAsync(string startedNotification, string completedNotification, IUser user, TimeSpan timeout) |
Вызвать один или несколько асинхронных обработчиков, при запуске и по завершении без ошибок показать сообщения указанному пользователю Задать тайм-аут ожидания синхронного завершения обработчиков |
Важно. Всего у метода 21 перегрузка. Описание перегрузок см. в редакторе кода с помощью горячих клавиш CTRL+SPACE. Подробнее о вызове списка для автодополнения кода (Intellisense) см. в разделе «Горячие клавиши».
Синтаксис
C# |
public static void ExecuteAsync(); public static void ExecuteAsync(string startedNotification, string completedNotification, string errorNotification, IUser user, TimeSpan timeout); |
Параметры
startedNotification – сообщение, которое нужно показать при запуске одного или нескольких асинхронных обработчиков;
completedNotification – сообщение, которое нужно показать по завершении без ошибок всех вызываемых обработчиков;
errorNotification – сообщение, которое нужно показать по завершении с ошибкой одного из вызываемых обработчиков;
user – пользователь, которого нужно уведомить о завершении одного или нескольких асинхронных обработчиков;
timeout – время ожидания синхронного завершения обработчиков. Чтобы отключить тайм-аут, используйте значение TimeSpan.Zero.
Пример 1. Показать текущему пользователю всплывающее сообщение о завершении выполнения всех асинхронных обработчиков
var handlers = new List<IAsyncHandler>();
var convertHandler1 = ConvertPdfAsyncHandler.Create();
var convertHandler2 = ConvertPdfAsyncHandler.Create();
handlers.Add(convertHandler1);
handlers.Add(convertHandler2);
var startedMessage = "Конвертация документов началась.";
var completeMessage = string.Format("Конвертация документов завершена: {0}, {1}", Hyperlinks.Get(document1), Hyperlinks.Get(document2));
var errorMessage = string.Format("Конвертация документов завершена с ошибкой: {0}, {1}", Hyperlinks.Get(document1), Hyperlinks.Get(document2));
handlers.ExecuteAsync(startedMessage, completeMessage, errorMessage, Users.Current);
Пример 2. Отключить или задать свое значение тайм-аута
// Отключить тайм-аут ожидания синхронного завершения обработчика.
handler.ExecuteAsync("message", user, TimeSpan.Zero);
// Установить тайм-аут ожидания синхронного завершения обработчика.
handler.ExecuteAsync("message", user, TimeSpan.FromMilliseconds(500));
© Компания Directum, 2025 |