当前位置:  开发笔记 > 编程语言 > 正文

当app在后台时,为什么本机线程的行为会有所不同?

如何解决《当app在后台时,为什么本机线程的行为会有所不同?》经验,为你挑选了0个好方法。

在我的应用程序中,我使用本机线程来处理音频数据.代码看起来非常像这样:

std::thread([this] () {
    while (enabled) {
        if (condition()) {
            process();
        }
        usleep(100);
    }
});

当应用程序在前台时,这可以正常工作.在后台,处理速度不够快,我得到缓冲区欠载.它只能usleep在没有后台工作.我传递的价值usleep没有什么区别.它也不适用于较小的值.我也尝试了,std::this_thread::sleep_for(std::chrono::microseconds(100))但没有什么区别.

我必须使用usleep或类似的东西,以避免高CPU使用,从而节省电池寿命.

当应用程序处于后台时,我该怎么做才能使本地线程的行为相同?

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有