我的软件需要存储某些特定位置的目录和注册表结构。这通常需要很长时间。假设我有一个名为 SaveState()
的方法来执行此操作。
我想将它包装到另一个方法 SaveStateWithProgress()
中,这样当我调用它时,会出现一个模态对话框,其中显示一个简单的进度条和一个用于取消操作的按钮。在我看来,我可能需要使用两个线程,尽管在 VB6 或 Java 中,我曾经使用等效于 Thread.Yield()
命令的方式来解决问题——不确定这是否是最佳实践,即使 C# 中有类似的东西。最好的方法是什么?
最佳答案
C# 中最好的方法是使用 BackgroundWorker并在该后台工作人员中运行您的密集操作。
Here is a tutorial其中包括有关如何中途取消操作的说明。
关于C#:在漫长的过程中显示模态进度对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3196482/