UWPアプリケーションでstd::thread
を使用してスレッドを作成するにはどうすればよいですか?申し訳ありませんが、オブジェクト内のメンバー関数のスレッドを作成するために必要な構文に問題があります。私はVisual StudioでC++/cxを使い始めました。ここに私のコードは次のとおりです。UWPでオブジェクトのメンバ関数内でstd :: threadを使用する方法C++/CX
void MainPage::increment(int val)
{
for (int i = 0; i < val; ++i){
m_timer4++;
Sleep(100);
textBox4->Text = m_timer4.ToString();
}
}
void _4ThreadsUWP::MainPage::button_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
m_timer->Start();
std::thread th(&MainPage::increment, this, 5);
}
EDIT:
私はこれらのエラーを持っています:
ERROR1:
'std::invoke': no matching overloaded function found
誤差2:
Failed to specialize function template 'unknown-type std::invoke(_Callable &&,_Types &&...)'
スレッドオブジェクトは、作成直後に有効範囲外になります。あなたはそれを 'th.join();'に参加させておくべきです。 – Azeem
@Azeemでも、私は 'th.join()を追加しましたが、それでも問題は解決しません。提案してくれたことありがとう – Gibs
私はずっと前に 'bind'スタイルの構文をあきらめました。ちょうどlambda:' std :: thread th([this]> increment(5);}); 'を使います。 –