Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос про CreateMutex и WaitForSingleObject

22K
14 ноября 2006 года
TigerCo
5 / / 14.11.2006
У меня есть проблема с "WaitForSingleObject".
Если верить тому, что написано в MSDN, то в следующем примере программа должна на втором выхове "WaitForSingleObject" зависнуть. Но этого не происходит. Программа удачно завершается. Почему?
Код:
int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE mm=CreateMutex(NULL,FALSE,NULL);
    WaitForSingleObject(mm,INFINITE);
    Sleep(1000);
    WaitForSingleObject(mm,INFINITE);
    Sleep(1000);
    WaitForSingleObject(mm,INFINITE);
    Sleep(1000);
    CloseHandle(mm);
    return 0;
}

Суть в том, что есть класс. Его функции вызываются различными потоками. Необходимо что бы в один момент времени работала иключительно одна из функций данного класса, а прочие вызваные функции ожидали очереди (как-бы из парралельного выполения сделать последовательное). Может есть какая другая реализация данной задачи?
Заранее благодарен.
P.S.: У меня VC2003.
1.8K
15 ноября 2006 года
_const_
229 / / 26.11.2003
Ты вызываешь wait-function в одном и том же потоке, который и владеет Mutex'ом, поэтому никакого зависания быть и не должно.
22K
15 ноября 2006 года
TigerCo
5 / / 14.11.2006
Супер!!!!
Большое спасибо!
Оказывается это я сам себя обманывал, а оно (в классе) все работает. :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог