Можно ли на асинхронных страницах ASP.NET выполнить две последовательные асинхронные задачи?

StackOverflow https://stackoverflow.com/questions/1658160

Вопрос

В ASP.NET вы можете запускать асинхронные задачи следующим образом:

PageAsyncTask task1 = 
new PageAsyncTask(BeginAsyncOperation1, EndAsyncOperation1, TimeoutAsyncOperation1, state);
RegisterAsyncTask(task1);

PageAsyncTask task2 =
new PageAsyncTask(BeginAsyncOperation2, EndAsyncOperation2, TimeoutAsyncOperation2, state);
RegisterAsyncTask(task2);

Однако предположим, что вам нужно убедиться, что задача 1 завершится до выполнения задачи 2.Это возможно?

Насколько я понимаю, эти задачи будут выполняться параллельно.

Это было полезно?

Решение

Самым простым решением было бы запустить задачу Task2 в обработчике EndAsyncOperation1.

Другие советы

Если задача 1 должна быть завершена раньше задачи 2, вы можете рассмотреть возможность создания третьей операции, которая инкапсулирует синхронные вызовы BeginAsyncOperation1 и BeginAsyncOperation2 и запускает эту операцию асинхронно.Работа над второй задачей не начнется, пока не будет завершена первая задача.

Решение находится в конструкторе PageAsyncTask.Установите логический флаг «параллельно» в значение false, и они будут выполняться последовательно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top