• 2851阅读
  • 3回复

[讨论]有关发送信号的小问题 [复制链接]

上一主题 下一主题
离线ninsun
 

只看楼主 倒序阅读 楼主  发表于: 2012-03-05
我想尝试在析构函数里面发送一个信号, 告知自己将被删除, 然后让所有引用了这个对象的对象将这个对象的引用置空

现在有一个问题就是... 有人这么做过吗? 这个信号会不会在某些情况下不会被发送出去, 或者说会不会因为对象被删除而在发送以后丢失?
离线coldsnow
只看该作者 1楼 发表于: 2012-03-05
connect正确的话应该不会发送失败!
离线jdwx

只看该作者 2楼 发表于: 2012-03-05
回 楼主(ninsun) 的帖子
试试就知道啦。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线ninsun

只看该作者 3楼 发表于: 2012-03-05
尝试了一下
delete对象, 析构函数里传出信号时,接受的槽函数里面调用sender()会返回一个空指针,
如果将自身指针通过信号传过来以后qobject_cast()也会失效, 转换失败
唯一可以获得信息只有一个地址与里面尚未销毁的数据.
这还只是单线程的时候出现的事情...
如果是多线程还不清楚会怎么样呢...
看起来通过信号发送自己即将被销毁的信息也不是不可能...
貌似还是很有用的..
至少很多操作可以通过信号触发, 而不需要写很多逻辑上的判断了...
快速回复
限100 字节
 
上一个 下一个