求常识性小疑点一个
求常识性小问题一个。我在非QThread子类中,需要 sleep() ,用什么方法呀?QThread 把 sleep 定义成protected
求常识性小问题一个。
我在非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 也是。你可以试试。
[其他解释]
这有什么代码可贴?
你用QThread::currentThreadId() 可以看到,我看到的句柄值是不一样的。
我用的是 QtSDK 4.8.1 的。自带的GCC4.4