任务When.All只调用第一个任务

时间:2016-02-09 16:30:23

标签: c# task

我有两个调用异步的任务。

await Task.WhenAll (
    ServerCommandWrapper (DoSomething1),
    ServerCommandWrapper (DoSomething2)
);

服务器命令包装器调用我的委托并等待它。

protected virtual async Task ServerCommandWrapper(Func<Task> action)
{
    if (IsBusy) {               
       return;
    }
    try {
        IsBusy = true;
        await action();
    } catch (System.Exception ex) {
        ReportError (ex);
    } finally {
        IsBusy = false;
    }
}

我的方法是:

protected virtual async Task DoSomething1 ()
{
    await Connect();
}

protected virtual async Task DoSomething2()
{           
    Data = await GetSomethingAsync();
}

当我尝试启动两个方法异步它只是在数组中首先启动一个。我做错了什么?

0 个答案:

没有答案