Правильный способ создания нескольких QThreads - PullRequest
0 голосов
/ 25 февраля 2020

Я разрабатываю приложение с Qt 5.9.4, и у меня есть класс, полученный из QThread

    class LogOperations : public QThread
    {
      Q_OBJECT
    public:
      LogOperations(QString path,QStringList args,int threadID);
      ~LogOperations();
      void setFileName(QString path);
      void setArguments(QStringList ar);
      void run();
    };

, и есть главное окно, в котором я создаю и запускаю эти потоки в нем. Сначала я создаю QList, который содержит указатель на этот класс QThread

QList<LogOperations *> threadList;

Затем я просто создаю потоки, подобные этому

    for(int i=0;i<ls.count();i++)
    {
         threadList.append(new LogOperations(ls.at(i),args,i));
         threadList.at(i)->start();
    }

Но если есть 5-10 потоков, это работает нормально, но если есть много (например, 20 или выше) потоков, приложение падает, как я могу обработать эти потоки? есть мысли?

...