Visual Studio 2012 と C++11 を使用しています。これが機能しない理由がわかりません:
void client_loop(bool &run)
{
while ( run );
}
int main()
{
bool running = true;
std::thread t(&client_loop,std::ref(running));
running = false ;
t.join();
}
この場合、スレッドのループはt
決して終了しませんが、明示的に に設定running
しfalse
ます。run
そしてrunning
同じ場所にあります。running
単一のグローバル変数として設定しようとしましたが、何も起こりません。私もポインター値を渡そうとしましたが、何もしませんでした。
スレッドは同じヒープを使用します。本当にわかりません。誰でも私を助けることができますか?