[英]Parallel.ForEach exits unexpectedly without exceptions
我正在运行 .NET 4.7 C# 控制台应用程序,在该应用程序中我正在遍历文件集合(带有文件路径的字符串列表。
我想对每个文件并行运行一个操作。
private void LaunchComparators()
{
//1) Get Trade Files
var files = GetTradeFiles();
//2) Run comparisons
try
{
Parallel.ForEach(files, file => LaunchComparator(file));
}
catch (Exception ex)
{
Log.Error(ex.Message);
throw ex;
}
//2 Write Results
WriteResults();
}
private void LaunchComparator(string file)
{
var comparator = new TradeComparator();
var strategyComparisonOutput = comparator.ComparePerStrategy(file);
}
在运行比较时,第一次比较完成,然后程序突然停止,没有任何异常。
我不确定我应该在这里做些什么不同的事情,以便文件都单独处理。
我是并行编程/线程的新手。 任何帮助表示赞赏。
并行 For 和 ForEach 操作不会重新抛出循环内发生的异常。 如果您不在循环内添加异常处理,则异常将丢失并且循环将终止。
这是一篇关于如何在并行处理循环中处理异常的文章的链接:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.