我有一个小应用程序来转换几种文件格式,主窗口形式包含几个文本框,按钮等.我有另一个"文档"类,它处理所有的实际转换工作,我的表单基本上迭代所有的文件,并调用适当的Document方法来转换文件.然而,当这种情况发生时,表单会停止响应.我创建了另一个简单的表单,其中包含一个进度条和一个取消按钮,当转换开始向我们(容易被叮叮当当的)用户提供一些反馈时,它会产生.但是,当新表单加载时,所有控件都是白色框,并且它也停止响应.转换完成后,进度条将正常关闭,主窗体将再次响应.
是否有一种简单的方法可以使这两种形式独立,这样即使另一种形式没有反应,进度条也可以运行?
最简单的解决方案是使用BackgroundWorker组件在后台线程上完成处理.您可以从VS工具箱中将其拖入.它允许您使用进度通知更新UI线程,以便您可以更新进度条以显示实际值(比使用"选取框"样式进度条更加用户友好).