gpt4 book ai didi

c++ - 我可以用什么来替换我的 Qt 应用程序中的 sleep 和 usleep?

转载 作者:可可西里 更新时间:2023-11-01 15:36:14 27 4
gpt4 key购买 nike

我正在将一部分现有代码导入我的 Qt 应用程序,并注意到其中有一个 sleep 函数。我看到这种类型的函数在事件编程中没有立足之地。我应该怎么做?

更新:经过思考和反馈,我会说答案是:仅在 GUI 主线程外调用 sleep ,如果您需要在 GUI 线程中等待,请使用 processEvents() 或事件循环,这将防止 GUI 卡住.

最佳答案

它不漂亮,但我在 Qt mailing list archives 中找到了它:

QThread的sleep方法是 protected ,但是你可以这样暴露它:

class SleeperThread : public QThread
{
public:
static void msleep(unsigned long msecs)
{
QThread::msleep(msecs);
}
};

然后调用:

SleeperThread::msleep(1000);

来自任何线程。

然而,一个更优雅的解决方案是重构您的代码以使用 QTimer - 这可能需要您保存状态,以便您知道当计时器关闭时该怎么做。

关于c++ - 我可以用什么来替换我的 Qt 应用程序中的 sleep 和 usleep?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1950160/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com