Мьютексы.Немогу понять что делаю не так

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _nic, 18 Feb 2009.

  1. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Пытаюсь вот разобратся как происходить синхронизация с помощью мьютексов.набросал вот такой код
    Code:
    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й :( Обьясните пожалуста как нужно правильно.
    ЗЫ:если мутексы неподходят для этого дела то подскажите как организовать то что мне хотелось в том исходнике.Тоесть что бы можно было бы из родительского потока приостанавливать и возобновлять дочернии.
     
    #1 _nic, 18 Feb 2009
    Last edited: 18 Feb 2009