【发布时间】:2017-11-24 04:42:56
【问题描述】:
我有 Parallel.Foreach 的代码,它正在处理文件并对每个文件并行执行一些操作。
Parallel.ForEach(lstFiles, file=>
{
// Doing some operation on file
// Skip file and move to next if it is taking too long
});
我想跳过一个文件并移动到下一个文件(但不想退出 Parallel.Foreach),如果特定文件花费的时间太长(比如 2 分钟)。 Parallel.Foreach 有什么方法可以检查线程处理单个文件所花费的时间。
谢谢
【问题讨论】:
-
您可以在 foreach 块中等待一个任务,并等待 stackoverflow.com/questions/4238345/… 中显示的 WhenAny like 的任务。
-
I want to skip a file and move to next file- 这个说法令人困惑。Parallel.ForEach正在并行处理列表中的所有文件,而不是一次处理 1 个。如果您决定停止处理特定文件,这就是您需要做的一切。其他人将继续同时进行。
标签: c# multithreading task-parallel-library parallel.foreach