穿在.net中

时间:2009-03-22 03:30:13

标签: c# multithreading

我有一个winforms应用程序的简单示例,我在目录选择器中选择一个目录,然后单击一个按钮循环遍历目录并将目录中的每个文件复制到另一个目录中。

我想在后台线程上进行文件复制,以避免锁定GUI。

我正在寻找最简单的解决方案:

  1. 创建后台主题
  2. 中传递来源和目的地
  3. 获取进度回调,以便我可以在GUI线程上显示进度条

2 个答案:

答案 0 :(得分:7)

我建议使用BackgroundWorker类。

Example

答案 1 :(得分:2)

除了上面的答案之外,我还要补充一点,BackgroundWorker非常适用于此,因为它也可以为您提供进度更新。只是确保你防止重新进入 - 这是你需要防止用户在完成后再次启动后台工作程序的情况。