QtConcurrent::mapped で大量の大量のデータ (1000 以上) を処理しています
auto result = QtConcurrent::mapped(image_id, std::bind<std::pair<QString, QImage>>(&mainWindow::process_image_impl, this, ph::_1));
それ以外の
void process_image_impl(int image_id)
{
//.......lots of codes
{
QMutexLocker locker(&mutex);
morphology.close(image, image); //I don't want to lock this operation
}
//lots of codes
}
私は次のようなことをしたいと思います
void process_image_impl(int image_id)
{
//.......lots of codes
morphology[thread_id].close(image, image); //I don't want to lock this operation
//lots of codes
}
関数 process_image_impl で、「morphology」というクラスを呼び出します。画像を処理するときにクラス「morphology」をロックしたくないのですが、ロックしないと未定義の動作が発生する可能性があります。プロセス、クラス「形態」をコンテナに入れ、QThreadPool のスレッドに従って「形態」のそれぞれを呼び出したいのですが、これは可能ですか?それとも他の提案はありますか?ありがとう