|
1
1
我没有立即在您的代码中发现问题,但您可能有点过于复杂了。这可能是一个简单的方法来做你想做的。
这不会像在您自己的尝试中那样为管道的每个阶段创建锁。我忽略了这一点,因为它似乎没用。但是,您可以通过包装以下函数轻松地添加它:
哪里
编辑:
这个
|
|
|
2
1
采用管道方法有什么特别的原因吗?在IMO中,为每个输入启动一个单独的线程,所有函数一个接一个地链接在一起,这样写起来更简单,执行起来也更快。例如,
现在,说到您的代码,我相信对于使用m stage实现精确的管道,您必须有m个线程,因为每个阶段都可以并行执行-现在,一些线程可能是空闲的,因为I/P还没有到达它们。我不确定您的代码是否正在启动任何线程,以及在特定时间线程的计数。 |
|
|
3
0
为什么不为每次迭代断开一个线程,并将结果聚合到一个锁定资源中呢?你只需要做。可以使用plinq。 我认为你可能把方法误认为是资源。如果一个方法正在处理一个包含共享资源的关键块,那么您只需要锁定它。通过从中选择一个资源并从中切入一个新的线程,您就不再需要管理第二个方法了。 即:方法x调用方法1,然后将值传递给方法2 ARR中的每个项目 异步(方法x(项)); |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |