【发布时间】:2017-03-06 07:19:08
【问题描述】:
我有 4 个异步方法在我的应用程序启动时执行。
一旦所有方法完成,我需要执行最后一行代码。因为它们都是异步执行的,我如何创建一个回调来确定最后一个方法何时完成执行?
我想过声明一个全局计数器变量,并在每次方法完成时递增它,一旦计数器达到 4,最后一行就会执行。
但我认为这会有点复杂,有没有更简单的方法?
public async Task PerformStartupTasksAsync()
{
await CreateSmartsheet();
// RUN THESE 4 ASYNCHRONOUSLY
ImportMainDatabase();
ImportIncomingSurveyResponse();
ImportOutgoingSurveyResponse();
UpdateHouseHoldListDropdown();
// ENABLE CONTROLS HERE, AFTER 4 METHODS HAVE COMPLETED
}
【问题讨论】:
-
这4种方法的签名是什么?他们是
async吗? -
这四个方法是如何异步执行的?他们是否使用并返回
Tasks?他们是否明确产生线程?他们是否加入了线程池?
标签: c# asynchronous asynccallback