Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QtConcurrent::map Сan't use QVector from class



  • Hi.
    In the file main.cpp I need start void StrategyCod1(double) in 4 thread:

    void StrategyCod1(double Parametr)
    { 
        QMutex Mutex;
        Mutex.lock();
        MainWindow w;
        QVector<double> Open=w.Open;
        Mutex.unlock();
        int NMA=Parametr;
        qDebug()<<NMA;
    }
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;   
        QVector<double> Perebor; //перебор первого значения стратегии
        for (double i=5;i<1000;i=i+3)
        {
            Perebor.append(i);
        }
        QFuture<void> Perebor2 = QtConcurrent::map(Perebor, StrategyCod1);
        return a.exec();
    }
    

    But when I run the program stops. Error in call MainWindow w.
    How do I use QVector from class MainWindow?


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    What exactly do you want to achieve ?

    In any case, your MainWindow variable in StrategyCod1 is local and will be destroyed at the end of the function.


Log in to reply