Закрытия массива потоков

156
22 апреля 2018, 23:14

Мне необходимо создать приложение, в котором происходит перемножение двух квадратных матриц. При этом пользователю предоставляется сделать выбор количества потоков, в которых будет происходить это самое умножение (maxThreadCount = matrixSize).
В связи с этим приложение имеет 2 класса:

  1. my_thread : public QObject - здесь реализована функция перемножения

  2. MainWindow - GUI

Запуск потоков происходит так:

for (qint32 i=0; i < threads_count; ++i)
    {
        myClassArray[i].moveToThread(&thrArray[i]);
        thrArray[i].start();
        QObject::connect(&thrArray[i], SIGNAL(started()), &myClassArray[i], SLOT(calculatingFirstAndLastIndeces()));
    }

Где, после перемножения в классе my_thread, посылается сигнал об окончании перемножения:

emit end_work(numberThisThread);

Но обработка:

void MainWindow::rcvEndWork(qint32 threadNumber)
{
    thrArray[threadNumber].quit();
    qDebug() << "Threads №" << threadNumber << " were closed";
}

этого сигнала в MainWindow происходит лишь один раз, т.е. если сигнал будет послан из 1600 потоков, то закроется лишь один.

Как мне закрыть все потоки после того, как они закончили свою работу?

READ ALSO
Как сделать вывод из текстового файла слов в которых символ m повторяется ровно 3 раза c++? [требует правки]

Как сделать вывод из текстового файла слов в которых символ m повторяется ровно 3 раза c++? [требует правки]

Вывод из текстового файла слов в которых символ m повторяется ровно 3 раза c++ добавить к коду ниже

181
Как через программу запустить cmd команду - C++ Builder

Как через программу запустить cmd команду - C++ Builder

Как при нажатии кнопки (WinForApp) в cmd выполнялась команда с моими параметрами?

210
Как перенести int, double, char в char const*?

Как перенести int, double, char в char const*?

Как перенести int, double, char в char const* ?

223
Использование std::wstringstream

Использование std::wstringstream

Мне нужно записать в const wchar_t* items следущее

195