_nic
18.02.2009, 21:44
Пытаюсь вот разобратся как происходить синхронизация с помощью мьютексов.набросал вот такой код
void thr(void *Pvoid)
{
HANDLE mut0=CreateMutex(NULL,false,"mymut1");
WaitForSingleObject(mut0,INFINITE);
MessageBox(0,"!!!!!","!!!!!!",MB_OK);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
CreateMutex(NULL,false,"mymut1");
_beginthread(thr,0,0);
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
HANDLE mut=CreateMutex(NULL,false,"mymut1");
ReleaseMutex(mut);
}
Я полагал что мессаг бокс должен вылезти после нажатия 2й кнопки.Но он появляется сразу же после нажатия 1й :( Обьясните пожалуста как нужно правильно.
ЗЫ:если мутексы неподходят для этого дела то подскажите как организовать то что мне хотелось в том исходнике.Тоесть что бы можно было бы из родительского потока приостанавливать и возобновлять дочернии.
void thr(void *Pvoid)
{
HANDLE mut0=CreateMutex(NULL,false,"mymut1");
WaitForSingleObject(mut0,INFINITE);
MessageBox(0,"!!!!!","!!!!!!",MB_OK);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
CreateMutex(NULL,false,"mymut1");
_beginthread(thr,0,0);
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
HANDLE mut=CreateMutex(NULL,false,"mymut1");
ReleaseMutex(mut);
}
Я полагал что мессаг бокс должен вылезти после нажатия 2й кнопки.Но он появляется сразу же после нажатия 1й :( Обьясните пожалуста как нужно правильно.
ЗЫ:если мутексы неподходят для этого дела то подскажите как организовать то что мне хотелось в том исходнике.Тоесть что бы можно было бы из родительского потока приостанавливать и возобновлять дочернии.