C#:在漫长的过程中显示模态进度对话框

Kal*_*lEl 3 c# multithreading

我的软件需要存储某些特定位置的目录和注册表结构.这通常需要很长时间.假设我有一个叫做的方法SaveState().

我想把它换成另一种方法,SaveStateWithProgress()这样当我调用它时,会出现一个模态对话框,它显示一个简单的进度条,并有一个取消操作的按钮.我看到它的方式我可能需要使用两个线程,虽然在VB6或Java中我过去使用相当于Thread.Yield()命令 - 不确定它是否是最佳实践,即使在C#中有类似的东西.最好的方法是什么?

Sco*_*ain 6

C#中最好的方法是使用BackgroundWorker并在后台worker中运行密集操作.

这是一个教程,其中包含有关如何取消中途操作的说明.