Как получить данные из потока в основном
У меня есть функция
HRESULT query()
{
int a = 1200;
while (a != 0)
{
--a;
std::cout << a << std::endl;
}
return S_OK;
}
Вызываю ее в основном потоке WinAPI
.......
HRESULT a;
.......
WM_CREATE:
{
th = make_unique<thread>([&](){
a = query();
cout << endl << endl << a;
});
break;
}
Я хочу в WM_PAINT рисовать прогрессбар во время исполнения функции (пока не получу в результате S_OK), как мне получить данные из потока? Если я буду через while проверять, тогда встанет весь поток. Есть еще идея: создать переменную и получить в нее время, после каждые 5 секунд проверять результат той переменной в основном таймере (PeekMessage), а после отправлять на перерисовку. Целесообразно ли это?