属性 更新后调用任务

Call a Task when a property has been updated

在 WPF MVVM (Catel) 应用程序中,我必须调用

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

我现在正在做的是

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

正如 Catel 的 Geert 告诉我的那样,这不是一个好方法,我同意你的看法,做 async void 不是一个好做法,考虑到我不希望更改我的存储库实现以同步提供数据的事实,我能做什么做什么?

提前致谢

这可能只是一个观点,但在我看来,在事件处理程序中执行 async void 或更准确地说是 async Task 是完全可以的,事实上:

Void-returning async methods have a specific purpose: to make asynchronous event handlers possible.

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