【发布时间】:2015-09-03 14:11:47
【问题描述】:
我正在使用外部库来寻找最小的功能(优化)。有时它需要很多时间,我想停止计算(例如通过单击按钮)。所以我在另一个线程中执行优化。我见过的所有例子都是这样的(在QThread的子类中):
void run(){
for(int i=0;i<100000;i++){
if(!flag) break;
//do something
}
}
当主线程将标志设置为false 时,第二个线程停止。问题是我不能将这样的标志放入外部库中。但是,我提供了对要最小化的函数的引用,以便每次迭代都会调用该函数。所以我在那个函数中加入了标志:
double function(double x){
if(!flag) ;//here I should kill thread
return x*x*x+2*x*x+7*x+7;
}
那么如何杀死那个线程呢?
【问题讨论】:
-
你能把你现在使用的代码显示为minimal reproducible example吗?
-
您使用的是什么外部库?提供链接。
标签: c++ multithreading qt