我尝试使用Stephen Cleary libray Nito.Mvvm.Async来处理我的视图模型中的异步初始化,但我对SyncronisationContext有一些问题:
示例1:我不确定如何以与单元测试兼容的方式处理错误 我想异步填写一个程序列表,但如果出现问题我必须显示一个弹出窗口(在主线程中),所以我尝试了这个:
ProgramsAsync = NotifyTask.Create(this.FillPrograms());
ProgramsAsync.Task.ContinueWith(previous =>
{
messageBoxService.ShowError(ProgramsAsync.ErrorMessage);
},
CancellationToken.None,
TaskContinuationOptions.OnlyOnFaulted,
TaskScheduler.FromCurrentSynchronizationContext());
但是,在mstest的上下文中,TaskScheduler.FromCurrentSynchronizationContext无效。 如何确保在正确的上下文中处理错误?
示例2:有时,异步方法的结果用于填充CollectionView。这需要在主线程中更新值,但这次不是在发生错误时。
感谢您的帮助。 分钟