我想咨询一下
我做 了demo发现 在wpf下,不会触发 ProgressChanged 工程直接从 DoWork 进入
RunWorkerCompleted
通过查看MSDN 知道BackgroundWorker 控件,是在Winform 下使用的,而且创建Winform的工程,是可以正常触发的
我需要做的操作是,我做了一个静态的滚动页面(前台进程),需要完成一个ftp上传服务(后台进程)
1.点击按钮是做ftp上传,点击时,加载一个静态滚动页面,不做任何操作
2.后台进程进行数据上传,在DoWorker中做路径读取
3.ProgressChanged 中作静态页面的Visible
4.完成之后,将静态页面Hidden
5.注销事件BackgroundWorker,关闭ftp
以上操作,在winform的工程中,能正常运作,但是在WPF窗体中,始终没有进入ProgressChanged
直接从Doworker进入了Complete操作,请问解决方案,和出现这种问题的原因?
找到了解决方案:
发现在WPF中
APPlication 如果是DoWorker的操作,根据MSDN的提示,可以在DoWorker中设置一个类似于触发的 方法,用来触发ProgressChanged
可以在Doworker中建立一个循环操作for 用来反馈操作的完成量,从而触发ProgressChanged
触发模式为
_backgroundWorder.ReportProgress(i);
当然,不可忽略的是,在之前就完成_backgroundWorder = new BackgroundWorker(); 的申明操作