Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ qt与静态成员函数并发_C++_Parallel Processing_Qtconcurrent - Fatal编程技术网

C++ qt与静态成员函数并发

C++ qt与静态成员函数并发,c++,parallel-processing,qtconcurrent,C++,Parallel Processing,Qtconcurrent,我成功地使用QtConcurrent::run()中的非静态成员函数并行了一些工作。我现在正试图用一个静态成员函数实现并行工作。我有一个随机类,我想在一个精确的实例上调用rand(double,double)静态函数:它是一个随机数生成器,我想在一个新种子生成器上运行调用runif的线程。我在这里尝试了这一点(solveParallel类是一个简单的类,其中我有一个runRandom()和resultRandom()函数,分别调用QtConcurent::run和Qfuture::result(

我成功地使用QtConcurrent::run()中的非静态成员函数并行了一些工作。我现在正试图用一个静态成员函数实现并行工作。我有一个随机类,我想在一个精确的实例上调用rand(double,double)静态函数:它是一个随机数生成器,我想在一个新种子生成器上运行调用runif的线程。我在这里尝试了这一点(solveParallel类是一个简单的类,其中我有一个runRandom()和resultRandom()函数,分别调用QtConcurent::run和Qfuture::result()

编译错误是“无法推断模板参数,因为函数参数不明确”::有线索吗


感谢和问候。

Random::rand的签名是什么?(如果函数是静态的,尝试在精确的实例上调用它是没有意义的)。谢谢。签名是rand(double,double)@alexisdm这很有意义。但是,我想为每个线程重新设置随机数生成器的种子。如何做到这一点?我认为您不可能轻松地为每个线程重新设定种子:QtConcurrent使用QThreadPool,并且删除池中30秒不活动的线程,因此您将“丢失该线程的种子”。您无法选择在哪个线程上调用重新播种,它将在池中第一个可用的线程上运行它。
Random::rand
的签名是什么?(如果函数是静态的,尝试在精确的实例上调用它是没有意义的)。谢谢。签名是rand(double,double)@alexisdm这很有意义。但是,我想为每个线程重新设置随机数生成器的种子。如何做到这一点?我认为您不可能轻松地为每个线程重新设定种子:QtConcurrent使用QThreadPool,并且删除池中30秒不活动的线程,因此您将“丢失该线程的种子”。您无法选择在哪个线程上调用重新播种,它将在池中第一个可用的线程上运行。
void solverParallelData::runRandom(const double& d1, const double& d2) 
{
    futureRandom = QtConcurrent::run(Random::rand,this->m_generator, d1, d2);
 }