みんな、おはよう、
私は、オブジェクトの変数の値を変更して画面に表示するだけの、単一のスレッドで非常に単純なアプリケーションを作成しようとしていました。そのため、プログラムを実行するたびに、スレッドは正しく初期化されますが、 のガベージ値が返されobject->a
ます。
どうすればこれを機能させることができるかについて、いくつかの指針を教えてください。
どうもありがとう。アレックス
HANDLE hPrintMutex;
int ThreadNr;
class object
{
public:
int a;
object(void);
};
object::object(void)
{
a=1;
}
void printNumber(void * arg)
{
object * x=(object*) arg;
std::cout<<"Thread1 -> "<< x->a<<"\n";;
while(x->a<10)
{
WaitForSingleObject(hPrintMutex,INFINITE);
x->a=5;
ReleaseMutex(hPrintMutex);
}
}
int main()
{
object * Object;
Object = new object;
hPrintMutex=CreateMutex(NULL,false,NULL);
std::cout << "Main -> "<<Object->a<<"\n";
HANDLE hThread1=(HANDLE)_beginthread(printNumber,0,&Object);
WaitForSingleObject(hThread1,INFINITE);
return 0;
}