BackGroundWorkerinWinFormsusingMVParchitecture的最佳实践我正在做一个winforms项目。我正在实施MVP架构。我在演示器上运行一些处理密集型作业(从文件系统读取并对数据库进行批量插入)。我想在不锁定UI的情况下在后台线程中执行这些操作,并更新我的视图上的控件(进度条和数据网格视图)。我是否应该只访问演示者中的backgroundworker对象并通过让视图事件处理程序触发演示者正在侦听的事件来处理演示者中的事件?例如:在视图中:privatevoidbackgroundWorker_ProgressChanged(objectsender,System.ComponentModel.ProgressChangedEventArgse){if(WorkerProgressChange!=null){WorkerProgressChange(this,EventArgs.Empty);在演示者中:_view.WorkerProgressChange+=UpdateView;这看起来合理吗?有人可以提供更好的模型吗?谢谢!演示者不应调用该工作-添加另一个执行该工作的模型单元并从控制器调用该工作(可以通过gui)。(让视图引发一个由控制器处理的工作事件,该事件调用后台工作人员并在更新/完成时调用视图)。我认为这种观点应该尽可能被动。演示者应该处理来自BackgroundWorker本身的事件并将此信息转换为视图(例如,更新显示在网格中的列表)。对于视图,此请求应该与数据直接来自演示者没有什么不同。以上就是C#学习教程的全部内容:BackGroundWorker在WinForms中使用MVP架构的最佳实践。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
