在ASP.NET异步页面中,是否可以执行2个顺序异步任务?

时间:2009-11-01 19:57:53

标签: asp.net asynchronous asynchronous-pages

在ASP.NET中,您可以按如下方式运行异步任务:

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

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

但是,假设您需要确保task1在task2执行之前完成。这可能吗?

我的理解是这些任务将并行运行。

3 个答案:

答案 0 :(得分:5)

最简单的解决方案是在“EndAsyncOperation1”处理程序中启动task2。

答案 1 :(得分:2)

如果task1需要在task2之前完成,您可以考虑创建第三个操作,该操作封装对BeginAsyncOperation1和BeginAsyncOperation2的同步调用,并异步运行该操作。第一项任务完成后,第二项任务的工作才会开始。

答案 2 :(得分:0)

解决方案在PageAsyncTask构造函数中。将“parallel”的布尔标志设置为false,它们将按顺序运行。