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 に入れたら、どうすれば値を取得できますか? 元のポインタはもう使えません...
ありがとうございました。