C ++ 11定时器功能?

时间:2013-06-30 09:45:38

标签: android c++ ios windows asynchronous

我可以在我的主线程中使用某种非阻塞计时器,它会调用一个函数来读取一个消息队列,看看是否有任何工作线程给了我有用的信息来更新GUI吗?

或者我需要在需要时采用老式的民意调查/更新。

是否有某种方式来安排更新?我知道你不能有跨线程回调,即我的工作线程在主线程上运行回调,我不确定即使使用延续类也可以这样做。

我想知道我是否可以使用抽象层将它拉下来,例如在iOS中我可以使用GCD在主GUI上轻松运行东西,而Windows 8有一种方法可以在未来有一个函数运行在从它调用的线程上完成。我猜测Android是因为你使用的是JNI与VM的接口,所以C ++线程都不是GUI线程所以它实际上并不重要。

所以我可以编写一段代码来为每个平台提取摘要吗?

1 个答案:

答案 0 :(得分:2)

托马斯的评论很好,所以这显然是最好的链接 除此之外,我做了一个可以提供帮助的例子。

#include <iostream>
#include <stdio.h>
#include <thread>
using namespace std;
int main()
{
    std::thread([]() {std::this_thread::sleep_for(std::chrono::milliseconds(1000));
                      cout<<"end of the thread\n";
                    }).detach();

    for (int i=0;i<20;++i)
    {
        std::this_thread::sleep_for(std::chrono::milliseconds(100));
        cout<<i<<std::endl;
    }
    return 0;
}

我的输出是: 0 1 2 3 4 五 6 7 8 线程结束 9 10 11 12 13 14 15 16 17 18 19

希望有所帮助: - )