0

スコープを囲む際に、parallel_forループ内の各スレッドがアクセスする必要のあるいくつかの変数があるとしましょう。組み合わせ可能なものが適しているという考えがあり、各スレッドで変数のコピーを1つ作成します。ただし、組み合わせ可能なものを初期化する方法がわかりません。

たとえば、QString式のコピーを使用したいと思います。各スレッドでコピーされたものの組み合わせ可能なスタンディングを作成します。

 combinable<QString> formulaRx;

私はそれから書くべきですか:

parallel_for(0,p,[&formulaRx, formula](int i)
{
         formulaRx.local() = formula;

         // do things

 });

?これで問題は解決しますか、それとも回線との同時アクセスがありますか

 formulaRx.local() = formula;

これを処理する適切な方法は何ですか?

はっきりしない場合は教えてください

ありがとう、よろしく。

4

1 に答える 1

1

を割り当てる必要はありませんformulaRx.local()。これは、結合可能なオブジェクトのローカル コピーのゲッターです。

parallel_for(0,p,(int i)
{
     QString f = formulaRx.local();

     // do things with f which is the local copy of formulaRx

});
于 2012-04-30T15:57:07.127 に答える