我目前正在使用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();
}
同时更改线程数不会改变任何东西,只是模型的数量或它们的大小很重要。
同样,它在创建线程时崩溃,而不是在循环函数(方法)中崩溃。
我在网上搜索时没有得到任何结果。
提前致谢!