【发布时间】:2019-05-08 20:24:45
【问题描述】:
你好,我是 C++ 的新手,特别是 STL,
我需要创建一个具有无限循环的函数来计算和处理大数据(例如遗传算法),但我还需要保持 Ui 响应并在(每轮之后)更新它无限循环和手动启动/停止操作。
类似这样的:
bool working = false;
void do_process()
{
while(working)
{
// do some stuff
}
}
void btnStart()
{
working = true;
do_process();
}
void btnEnd()
{
working = false;
}
请您指导我找到一个没有任何 3rdparty 库的正确解决方案,谢谢。
并为糟糕的英语道歉。
【问题讨论】:
-
如果您想继续按下按钮以排队更多
do_process作业,请查看std::vector以根据需要存储额外的std::threads ... Buuuuut... 这通常一个坏主意,因为太多线程开始争夺对 CPU 和其他资源的访问权限。必须维护vector并在线程过期后进行清理也很痛苦。取而代之的是look into thread pools。
标签: c++ multithreading stl