-2
我有一个线程(线程A):如何醒来C “函数getline” 在CIN ++
while (true) {
if (isOpen)) {
break;
}
string line = "";
getline(cin,line);
std::cout << line << "\n";
}
在启动程序isOpen = true;
,在另一个线程(线程B)我设置isOpen
为false。
我想问你,如何唤醒THREAD A,这是睡眠getline?
我的想法是发送空字符串到cin,但怎么样?
谢谢你的帮助。
FULL示例代码:
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