C# 异步等待中的错误处理

C# 异步等待中的错误处理,c#,async-await,C#,Async Await,我尝试使用Stephen Cleary Library Nito.Mvvm.Async在我的视图模型中处理异步初始化,但SyncronisationContext有一些问题: 示例1:我不确定如何以与单元测试兼容的方式处理错误 我想异步填充程序列表,但如果出现问题,我必须显示一个弹出窗口(在主线程中),因此我尝试了以下方法: ProgramsAsync = NotifyTask.Create(this.FillPrograms()); ProgramsAsync.Task.ContinueWit

我尝试使用Stephen Cleary Library Nito.Mvvm.Async在我的视图模型中处理异步初始化,但SyncronisationContext有一些问题:

示例1:我不确定如何以与单元测试兼容的方式处理错误 我想异步填充程序列表,但如果出现问题,我必须显示一个弹出窗口(在主线程中),因此我尝试了以下方法:

ProgramsAsync = NotifyTask.Create(this.FillPrograms());
ProgramsAsync.Task.ContinueWith(previous =>
        {
             messageBoxService.ShowError(ProgramsAsync.ErrorMessage);
        },
CancellationToken.None,
TaskContinuationOptions.OnlyOnFaulted,
TaskScheduler.FromCurrentSynchronizationContext());
但是TaskScheduler.FromCurrentSynchronizationContext在mstest的上下文中无效。 如何确保在正确的上下文中处理错误

示例2:有时使用async方法的结果填充CollectionView。这需要在主线程中更新值,但这次不是在发生错误时

谢谢你的帮助。
Mins

仍在进行中:我尝试在单元测试中使用
SynchronizationContext.SetSynchronizationContext(newsynchronizationcontext())提供SynchronizationContext但是这个“空”上下文没有任何作用:等待的任务没有被调用我尝试了在上找到的几个版本的SynchronizationContext,但是没有一个适合任何人?bump。。。。。。。。。。。