• 4983阅读
  • 4回复

deleterlater 如何判断是否结束?(结贴) [复制链接]

上一主题 下一主题
离线gonboy
 

只看楼主 倒序阅读 楼主  发表于: 2015-01-05
请教一个问题
for(int i = 0; i < 12; i++)
{
     HttpSend *ht= new HttpSend();
     ht->send("123");
     ht->deleterlater();
    //如何 判断ht,在事件中 被释放完毕,以便进行下一个循环 ??
}


离线dbzhang800

只看该作者 1楼 发表于: 2015-01-06
你这代码设计有问题吧??

ht->deleteLater() 相当于 delete ht;

如果你这个循环内有事件循环动作,那么你可以直接 写 delete ht;,但似乎也并不是你要的。
如果你这个循环内没有事件循环动作,那么你的deleteLater() 在你退出循环之前不可能被执行,这似乎也不是你要的。
离线phoinikas

只看该作者 2楼 发表于: 2015-01-07
如果你要等一个对象删除后执行某操作,connect(ht, SIGNAL( destroyed() ), this, SLOT(func() ) )
如果不需要等对象删除,那调用deleteLater()后不用管了
离线gonboy

只看该作者 3楼 发表于: 2015-01-08
回 dbzhang800 的帖子
dbzhang800:你这代码设计有问题吧??
ht->deleteLater() 相当于 delete ht;
如果你这个循环内有事件循环动作,那么你可以直接 写 delete ht;,但似乎也并不是你要的。
....... (2015-01-06 10:06) 

是的。相当于delete .
此处仅举例。
离线gonboy

只看该作者 4楼 发表于: 2015-01-08
回 phoinikas 的帖子
phoinikas:如果你要等一个对象删除后执行某操作,connect(ht, SIGNAL( destroyed() ), this, SLOT(func() ) )
如果不需要等对象删除,那调用deleteLater()后不用管了 (2015-01-07 14:45) 

测试 OK
tks
快速回复
限100 字节
 
上一个 下一个