无法为一个大进程打开一个线程

时间:2014-01-30 16:09:41

标签: c++ multithreading c++11

我目前正在使用C ++开发CAO软件。

我想使用来自C ++ 11的std :: thread多线程处理我的一个进程(我已尝试使用winbase线程)。此过程调用几何函数,并且需要大量内存,尤其是大型模型。每个线程都在适当的模型上工作,它可以是场景中的许多模型。此功能与显示模型无关,只是计算。

在许多情况下,它可以完美地运行,例如许多小型号或几个大型号。但是当我尝试将我的进程应用于许多大型模型时,所有线程都不想启动(当我尝试创建第一个时它会崩溃)。

我尝试使用WinBase线程,但无法打开新线程(它返回NULL)。我在VS2010上。所以,我接着尝试使用VS2012和std :: thread,但现在,我遇到了运行时错误。

以下是创建线程的代码部分:

std::thread * threadOp;
try
{
             threadOp = new  thread(method ,argument);
}
catch ( const std::exception & e )
{
             std::cerr << e.what(); 
}

同时更改线程数不会改变任何东西,只是模型的数量或它们的大小很重要。

同样,它在创建线程时崩溃,而不是在循环函数(方法)中崩溃。

我在网上搜索时没有得到任何结果。

提前致谢!

0 个答案:

没有答案