Critical: File:() Line:(0) Fun:() (2018-04-25 16:37:53 周三) QThread::start: Failed to create thread (设备不识别此命令。)
Fatal: File:() Line:(0) Fun:() (2018-04-25 16:38:19 周三) createDIB: CreateDIBSection failed.
程序报错如上, 求大神提供解bug的思路, 程序中开了30个子线程, 相关代码如下
void TaskQueueManager::clearThreadList(GtList<QThread*>&threadList)
{
int count =threadList.count();
for(int i=0; i<count; i++)
{
QThread *thread =threadList;
thread->quit();
thread->wait();
}
threadList.clear();
}
void TaskQueueManager::initThreadList(int threadCount, GtList<QThread*>& threadList)
{
threadList.clear();
for(int i=0; i<threadCount; i++)
{
QThread *thread =new QThread(this);
thread->start(QThread::TimeCriticalPriority);
threadList.push_back(thread);
}
}
auto circleTaskList =[&](GtList<TaskRunner*>& _waitTasks, GtList<QThread*> &threadList , QMap<QThread*,TaskRunner*> &runningTasks )
{
while(_waitTasks.count()>0 && runningTasks.count() <threadList.count())
{
TaskRunner* runner = _waitTasks.takeFirst();
if(runner)
{
for(int i=0; i<threadList.count(); i++)
{
QThread* thread =threadList;
if(runningTasks.contains(thread))
continue;
else
{
connect(runner, SIGNAL(taskFinish(void*)), this,SLOT(onUpdateTaskList()));
runner->moveToThread(thread);
runningTasks.insert(thread,runner);
QTimer::singleShot(0,runner, &TaskRunner::on_DoRequest);
break;
}
}
}
}
} ;