我正在编写一个提供端到端图像处理系统的 C# windows 窗体应用程序。该系统由许多图像处理块(即缩放器、降噪等)组成,每个块都是用 C 编写的算法,我将它们中的每一个都构建到 DLL 中并从我的 C# 应用程序中调用它们.
我的系统是这样的:
(main) input1 -> block1 -> block2
(ig) input2 -> block3 -> block4 -> MUX -> output
(pg) input3 -> block5 -> block6
目前,我正在使用的代码如下所示:
Task.Factory.StartNew(() => Parallel.For(0, loop_num, i =>
{
Parallel.Invoke(
() =>
{
main(i);
},
() =>
{
ig(i);
},
() =>
{
pg(i);
}
);
mux(i);
}), TaskCreationOptions.LongRunning);
但我看到该应用程序需要很长时间才能完成几张图像。其实我不擅长C#,只是通过一些例子自学并行和任务。
我不知道我的代码在处理多个处理方面是否足够好,还是有更好的方法?所以我开始这个线程来寻求帮助/建议。