Nas páginas assíncronas do ASP.NET, é possível executar 2 sequencial, tarefas assíncronas?
-
11-09-2019 - |
Pergunta
Em ASP.NET, você pode executar tarefas assíncronas da seguinte forma:
PageAsyncTask task1 =
new PageAsyncTask(BeginAsyncOperation1, EndAsyncOperation1, TimeoutAsyncOperation1, state);
RegisterAsyncTask(task1);
PageAsyncTask task2 =
new PageAsyncTask(BeginAsyncOperation2, EndAsyncOperation2, TimeoutAsyncOperation2, state);
RegisterAsyncTask(task2);
No entanto, suponha que você precisa para garantir que completa task1 antes executa TASK2. Isso é possível?
O meu entendimento é que essas tarefas seria executado em paralelo.
Solução
A solução mais fácil seria task2 lançamento dentro do manipulador "EndAsyncOperation1".
Outras dicas
Se as necessidades task1 concluir antes task2, você poderia considerar a criação de uma terceira operação que encapsula chamadas síncronas para BeginAsyncOperation1 e BeginAsyncOperation2 e executar esta operação de forma assíncrona. O trabalho para a segunda tarefa não começará até que a primeira tarefa foi concluída.
A solução é no construtor PageAsyncTask. Defina o sinalizador booleano para "paralelo" para ser falso e eles serão executados sequencialmente.