在我的 WPF MVVM 应用程序中,我有一些永远运行的后台任务,我像这样创建它:
Task.Run(async () =>
{
while (true)
{
if (IsStarted)
{
// Do some processing and update the UI via bound properties.
}
await Task.Delay(300);
}
});
Run Code Online (Sandbox Code Playgroud)
我应该把它改成await Task.Delay(300).ConfigureAwait(false);吗?我环顾四周无法判断,但听起来它可能是多余的,因为它已经在线程池线程中等待。
我应该将其更改为 await Task.Delay(300).ConfigureAwait(false);?我环顾四周无法判断,但听起来它可能是多余的,因为它已经在线程池线程中等待。
这将是多余的,因为该方法首先没有要捕获的上下文。
但是,作为一种风格偏好,我仍然会使用它。的存在ConfigureAwait(false)通知代码的读者该方法的其余部分不需要在其原始上下文中恢复。