后台任务的进度报告

eWo*_*olf 1 c# model-view-controller multithreading winforms

我有一个后台任务,可以将文件导入数据库.我希望用户看到当前正在发生的事情(收集文件/导入文件),当前处理的文件以及任务进展的程度.我怎么能这么简单地做到这一点?模型和控制器之间的交互非常接近,我几乎可以将导入代码放入窗口的代码文件中,并直接更改进度条值等.你怎么看?你会如何解决这个问题?

Tho*_*que 8

使用a BackgroundWorker,它非常适合这项任务.它可以使用该ReportProgress方法通知UI当前进度,这会在ProgressChangedUI线程上引发事件(这意味着您不必担心跨线程调用Invoke)