我尝试在循环中运行 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: access after free 错误 - 第一个 free 可能位于 ../lib/util/talloc_stack.c:103
Badtalloc 魔术值 - access after free
程序意外完成。