Я одна нить (НИТИ A):Как проснуться "GetLine" над КИН в C++
while (true) {
if (isOpen)) {
break;
}
string line = "";
getline(cin,line);
std::cout << line << "\n";
}
При запуске программы isOpen = true;
, в другом потоке (НИТИ B) Я установить isOpen
ложь.
Я хочу спросить вас, как просыпаться THREAD A, который сжимается над getline?
Моя идея отправлена пустая строка в cin, но как?
Благодарим за помощь.
ПОЛНЫЙ ПРИМЕР КОД:
using namespace std;
#include <thread>
bool isOpen = true;
void test() {
Sleep(10000); //sleep for 10s
isOpen = false; //break loop
}
int main() {
std::thread* _t = new std::thread(test); //start thread B
while (true) {
if (isOpen==true) {
break;
}
string line = "";
getline(cin,line);
std::cout << line << "\n";
}
return 0;
}
Я не компилируется этот код, я пишу с мобильного телефона, могут быть некоторые синтаксические ошибки, ...
@RawN Я добавляю полный пример – makubas