【发布时间】:2015-08-06 20:42:37
【问题描述】:
在我的 WPF 应用程序中,我的 ViewModel 与 ViewModelService 对话,ViewModelService 反过来与 CalculationService 对话,以检索要在 View 中呈现的已处理数据。我希望视图能够向用户报告完成百分比。我的问题有两个。
首先是这个逻辑应该放在哪里? CalculationService 是否应该负责报告进度以及实际结果,或者 ViewModel 服务是否计算进度百分比详细信息。
其次,我发现我可以使用 TPL 或使用 ReactiveExtentions 来实现这一点。我倾向于响应式扩展,因为在我的情况下,计算服务的 API 和实现看起来像这样
//This is pseudo code, just aiming to show my intention here
IEnumerable<Output> Calculate(IEnumerable<Inputs> inputs){
List<Output> output = new List<Output>();
foreach(var input : inputs){
//long running calculation, which produces output
//outputs.Add(output)
}
}
我假设如果我沿着 Reactive 路线走,我可以使用 Reactive 的 OnNext 在它们到达时流式传输“输出”,并且我还可以使用 Parallel.Foreach 来获得性能。
对此有何想法或想法?
谢谢 凯
【问题讨论】:
标签: c# task-parallel-library system.reactive