如何使用QtConcurrent :: run()创建多个线程

时间:2012-09-03 09:15:29

标签: qt

我尝试在循环中运行QtConcurrent :: run(),但程序崩溃:(我正在使用libsmbclient)

void Scanner::scan()
{
    for(int i=0;i<ipList.length();i++)
    {
        QtConcurrent::run(this,&Scanner::scanThread,i);
    }
}
void Scanner::scanThread(int i)
{
int dh;
QString ip;
ip="smb://"+ipList[i]+"/";
dh= smbc_opendir(ip.toAscii());  // debugger points to this location
if(dh<0)
    return;
emit
        updateTree(i,dh);         // on commenting this line, it still crashes 
}

错误:

  

talloc:免费错误后访问 - 首次免费可能是../lib/util/talloc_stack.c:103
    糟糕的魔法价值 - 免费后访问
    该计划意外地完成了。

0 个答案:

没有答案