属性 更新后调用任务
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
在 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