更新资产后调用任务

时间:2015-11-27 13:10:05

标签: c# wpf mvvm catel

在WPF MVVM(Catel)应用程序中我要调用

Task<DateTime> GetDateFor(int portfolio, int currency);

现在我正在做的是

if (e.HasPropertyChanged(() => SelectedCross))
{
    using (StartInternalChange())
    {
        await GetDateFor(1,2);
    }
}

正如来自Catel的Geert告诉我这不是一个好的方法,我同意你的观点,做async void不是一个好习惯,考虑到我希望不改变我的存储库实现以同步提供数据这一事实我该怎么办?

提前致谢

1 个答案:

答案 0 :(得分:2)

它可能只是一个透视点,但在我看来,在事件处理程序中执行async void或更精确的异步任务是完全可以的,事实上:

  

Void-returns async方法有一个特定的目的:使异步事件处理程序成为可能。

至少根据Stephen Cleary,你可以在这里阅读更多相关内容: Async/Await - Best Practices in Asynchronous Programming