我在非QThread子类中,需要 sleep() ,用什么方法呀?
QThread 把 sleep 定义成 protected 了,不能直接用。
我现在想在 QRunnable 的子类中使用。
别告诉我直接用 winapi ,我想跨平台。
更别告诉我继承一个 QThread , 把 sleep 再 public 一下...
应该有更直接的方法吧?
------最佳解决方案--------------------
不是有qSleep ( int ms )这个函数么?
------其他解决方案--------------------
围观楼主纠结的问题
------其他解决方案--------------------
主线程发信号给 子线程,
子线程的slot 里面调用sleep()..
------其他解决方案--------------------
~~>_<~~~泪奔。。。哦。。QRunable。。。不是继承自QObject.收不到信号。。我错了。。
------其他解决方案--------------------
mark……
建议看看 C++ GUI Qt4编程 一书中线程一章,依稀记得好像有类似问题的答案
------其他解决方案--------------------
可以考虑直接封装本地接口的sleep就行
大概形式如下
void mySleep(int milseconds )
{
#ifdef _WIN32
#include <windows.h>
sleep(milseconds)
#else
#include <unistd.h>
usleep(1000*milseconds)
#endif
}
------其他解决方案--------------------
在哪里发现的。求源码出处~
我在源码里面看到的,跨线程里的signal slot是通过postEvent来的。
------其他解决方案--------------------
贴出来~我没看到呢。。
------其他解决方案--------------------
顶,要疗效不要纠结
------其他解决方案--------------------
哈......超级大傻帽的解决方案。
------其他解决方案--------------------
其实我发现用 signals ... slots ,信号接收到的不是同一个线程,Qt好象重建了一个线程去执行信号的。
所以在技术上,你这个方式不可行的。
------其他解决方案--------------------
程序跟踪到的,试过很多个了。
包括 invokeMethod 也是。你可以试试。