1

我正在使用 C# 和 .Net 4.5 在 VS 2012 中创建一个项目。我需要遍历目录树,但我想异步进行。我想我必须对 Task 类做点什么,但我不确定。我还需要能够报告该过程的进展。

4

2 回答 2

2

只需将整个函数包装进去Task.Run(()=>{ ... });,它将在线程池线程中异步运行。

于 2012-11-21T16:59:00.093 回答
0

你可以使用BackgroundWorker. 它非常有用,因为它可以实现RunWorkerProgress事件RunWorkerCompleted处理程序,您可以使用它们来报告进度并找出它何时完成处理。关于进度,您将无法估计仅使用方法完成的工作部分Directory.EnumerateFileSystemEntries()(因为您不知道会有多少目录/文件),但您将能够向用户展示您处理了多少条路径(或类似路径)。

于 2012-11-21T17:14:38.547 回答