从多线程.net应用程序调用本机dll中的tbb问题?

时间:2016-05-05 19:21:20

标签: c# c++ multithreading clr tbb

我们有一个原生的.dll,使用线程构建模块4.4进行一些HPC类型计算来管理并行性。这个.dll是从一个本身是多线程的.Net桌面程序调用的。我是tbb的新手,我想知道这种设置是否会引发一些问题。我对tbb的使用非常基本 - 我只是调用parallel_reduce来做一个特定的计算。我没有明确设置tbb线程池;我依赖于默认的初始化。

当我们进行系统测试时,我们看到一些间歇性的进程挂起。当我们单独测试本机dll时,我们没有看到这些,所以我期望一个最小的例子来证明这个问题很难构建。我希望有人更熟悉tbb而不是我可以建议在这种使用场景中是否存在内在问题。

顺便说一下,x86-64平台上的所有内容都在Windows 10上运行。

1 个答案:

答案 0 :(得分:0)

我的问题的答案似乎是没有问题;线程构建块在这种情况下可以正常工作。消除parallel_reduce并没有改变行为,进一步的调查表明问题仅限于托管代码;根本没有与TBB有任何关系。