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