ユーザーが特定のキーを押したときに別のスレッドを実行してプログラムを終了したい。これは私のプログラムの構造です。特定のキーを押したときにスレッドを実行して、ユーザーが特定のキーを押したときにプログラムを閉じる
#include <iostream>
#include <windows.h>
using namespace std;
DWORD WINAPI foo(LPVOID lpParameter)
{
//do something
return 0;
}
DWORD WINAPI boo(LPVOID lpParameter)
{
//do something
return 0;
}
int main(int argc, char **argv)
{
HANDLE foo1,boo1;
while(true)
{
foo1 = CreateThread(NULL,0,foo,NULL,0,NULL);
boo1= CreateThread(NULL,0,boo,NULL,0,NULL);
//do something
}
return 0;
}
プログラムを実行している間は、常にループ中に2つのスレッドを作成しています。だから私は別のスレッドを追加して、ユーザーがプログラムを実行している間にキーを押すたびに、ユーザーがプログラムを閉じるのに合った特定の文字と比較した後にユーザー入力を取得したい。
私はそれを行うことは考えていません。誰かが私を助けることができますか?
PS:私は使用してスレッドが唯一:)
なぜこのような単純なものにスレッドを使用するのですか?それは大規模な過度の複雑化のようです。 –
実際にスレッドを使ってそれを行うように求められました。それが理由です。 – User9125
スレッドを作成するときは、CreateThread呼び出しによって返されたハンドルが有効であることを確認する必要があります。そうでない場合は、メモリアクセス例外が発生します。スレッドを終了したら、CloseHandle関数でハンドルを閉じる必要があります。 –