1

boost::thread でこれを試す:

void MyClass::Func(int a, int b, int c, int &r) {
    r = a + b + c;
}

void MyClass::Func2(int a, int b, int c) {
    memberVar = a + b + c;
}

void MyClass::Work()
{
    int a = 1, b = 2, c = 3;
    int r;
    boost::thread_group tg;

    for(int i = 0; i < 10; ++j)
    {
        boost::thread *th = new boost::thread(Func, a, b, c, r);    //* error

        tg.add_thread(th);
    }

    tg.join_all();
}

1) //* 行でこのエラーが発生しますが、その理由はわかりません。

エラー: ',' トークンの前にプライマリ式が必要です

2) 参照パラメーター (r) は、スレッドから値を取得する良い方法ですか? それとも、Func2() のようにメンバー変数を設定する必要がありますか? (誰が何を書いたか気をつけて)

3) スレッドを thread_group に入れたら、どうすれば値を取得できますか? 元のポインタはもう使えません...

ありがとうございました。

4

1 に答える 1