2015-09-22 76 views
-1

我有这个代码队列任务读取文件到结果变量。但有时,一些文件会被一起调用,因此,文本存储不正确。 在运行下一个foreach之前,如何让我的程序等待任务完成?排队的任务。运行

foreach (string path in paths) 
{ 
    result = ""; 
    Task.Run(() => 
    { 
     result = File.ReadAllBytes(path); 
    }.ContinueWith(x => 
      { 
       result = result.remove(25); 
      }, TaskScheduler.FromCurrentSynchronizationContext()); 

} 
+2

你可以使用'async/await'吗?或者你可以切换到“IParallelEnumerable”? –

+0

为什么在这种情况下使用ContinueWith?只需将该行添加到Run() - 除非有其他代码不显示:-) –

+0

@ DanielA.White我的代码有什么不同? – user5326581

回答

0

好像你应该只是把周围:

result = ""; 
    Task.Run(() => 
    { 
     foreach (string path in paths) 
     { 
      result = File.ReadAllBytes(path); 
     } 
    }.ContinueWith(x => 
    { 
     result = result.remove(25); 
    }, TaskScheduler.FromCurrentSynchronizationContext()); 

不知道什么是“删除(25)”是干什么的,所以留在最后,但或许也应该移动在foreach循环中。