我当前正在处理一个需要使用多线程的项目。
我正在尝试使用TPL,因为根据我的研究,最好使用线程池。
我的代码来自foreach循环,其中每个项目都需要使用不同的线程运行并并行执行。
线程将调用来自不同库的方法。
我的问题
效率更高的方法是:
我的项目还包括以任何顺序获取结果,创建并写入文件以及在我尝试使用聚合异常的线程内捕获异常。
有什么想法最能解决这个问题?
就像这样,我在列表中存储了文件名。这些文件应运行到不同的线程中进行处理。每个文件都有c ++代码。我实际上是使用第三方库来完成该项目,例如使用moonsharp在c#和c ++之间进行通信。 我将运行c ++脚本,并使用c#项目中的某些功能来计算来自脚本的输入。之后,c#将结果返回给c ++。现在,c ++具有结果,并且c#可以访问它。我将使用c#项目将结果写在记事本中。所以基本上我有一个处理C ++脚本的C#项目。 流程是这样的:
foreach(string FileName in ListOfC++Files)
{
//Do method
}
我想到的是:
Parallel.foreach( ListOfC++Files, filenames()=>
{
//Do method
});
或者只是做任务
foreach(string FileName in ListOfC++Files)
{
Task.Run(()=>
{
// do Method
});
}
在方法中 执行设置目录,设置文件名,运行其他库中的方法来处理c ++和c#之间的通信
类似的东西。 谢谢