Nelle pagine asincrone ASP.NET, è possibile eseguire 2 sequenziale, task asincroni?
-
11-09-2019 - |
Domanda
In ASP.NET, è possibile eseguire operazioni asincrone come segue:
PageAsyncTask task1 =
new PageAsyncTask(BeginAsyncOperation1, EndAsyncOperation1, TimeoutAsyncOperation1, state);
RegisterAsyncTask(task1);
PageAsyncTask task2 =
new PageAsyncTask(BeginAsyncOperation2, EndAsyncOperation2, TimeoutAsyncOperation2, state);
RegisterAsyncTask(task2);
Tuttavia, supponiamo che è necessario per garantire che task1 completa prima esegue Task2. È possibile?
La mia comprensione è che questi compiti saranno applicate in parallelo.
Soluzione
La soluzione più semplice sarebbe quella di lanciare TASK2 all'interno del gestore "EndAsyncOperation1".
Altri suggerimenti
Se task1 ha la necessità di completare prima di TASK2, si potrebbe prendere in considerazione la creazione di una terza operazione che incapsula le chiamate sincrone a BeginAsyncOperation1 e BeginAsyncOperation2 ed eseguire tale operazione in modo asincrono. Il lavoro per la seconda attività non inizierà fino a quando il primo compito è stato completato.
La soluzione è nel costruttore PageAsyncTask. Impostare il flag booleano per "parallelo" di essere falsa e saranno eseguite in modo sequenziale.