我有一个程序,其中我们可以同时监视2个对象。
myThread = new thread (thred1,id);
vec.push_back (myThread);
在thred1函数中,我使用布尔函数从另一个向量中读取存储的值,并且它并行运行,如下所示:
找到元素2-hj
HUMIDITY-1681692777在RH中显示
找到元素1-hj
TEMPERATURE--1714636915呈深绿色
这将继续运行,因为这是我的程序应该做的。 我遇到一种情况,我需要从用户那里获取ID并停止该特定线程,而另一个线程应该一直运行直到停止为止。有人可以帮我吗?
void thred1 (int id)
{
bool err = false;
while (stopthread == false)
{
for (size_t i = 0; i < v.size (); i++)
{
if (id == v[i]->id)
{
cout << "element found " << v[i]->id << " -- " << v[i]->name << endl;
v[i]->Read ();
this_thread::sleep_for (chrono::seconds (4));
err = true;
break;
}
}
if (!err)
{
cout << "element not found" << endl;
break;
}
}
}