2009-11-01 4 views
0

Dans ASP.NET, vous pouvez exécuter des tâches asynchrones comme suit:Dans les pages asynchrones ASP.NET, est-il possible d'exécuter 2 tâches asynchrones séquentielles?

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

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

Cependant, supposons que vous devez vous assurer que Task1 complète avant TASK2 exécute. Est-ce possible? Je crois comprendre que ces tâches se dérouleraient en parallèle.

Répondre

5

La solution la plus simple serait de lancer task2 dans le gestionnaire "EndAsyncOperation1".

2

Si la tâche 1 doit se terminer avant la tâche 2, vous pouvez envisager de créer une troisième opération qui encapsule les appels synchrones BeginAsyncOperation1 et BeginAsyncOperation2 et exécute cette opération de manière asynchrone. Le travail pour la deuxième tâche ne commencera pas avant la fin de la première tâche.

0

La solution se trouve dans le constructeur PageAsyncTask. Définissez l'indicateur booléen pour que "parallel" soit faux et ils s'exécuteront séquentiellement.