我可以在我的主线程中使用某种非阻塞计时器,它会调用一个函数来读取一个消息队列,看看是否有任何工作线程给了我有用的信息来更新GUI吗?
或者我需要在需要时采用老式的民意调查/更新。
是否有某种方式来安排更新?我知道你不能有跨线程回调,即我的工作线程在主线程上运行回调,我不确定即使使用延续类也可以这样做。
我想知道我是否可以使用抽象层将它拉下来,例如在iOS中我可以使用GCD在主GUI上轻松运行东西,而Windows 8有一种方法可以在未来有一个函数运行在从它调用的线程上完成。我猜测Android是因为你使用的是JNI与VM的接口,所以C ++线程都不是GUI线程所以它实际上并不重要。
所以我可以编写一段代码来为每个平台提取摘要吗?
答案 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
希望有所帮助: - )