Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WaitForSingleObject не ожидает закрытия мютекста


Страницы:   1 2

DelphiN! ©   (2007-06-19 13:05:00) 

Пишу:


var
 MHandle: THandle;

function Test: Boolean;
begin
 MHandle := CreateMutex(nil,false,'MyTest0000001');
 if WaitForSingleObject(MHandle,INFINITE) = 0 then
    Result := false//Error
 else
   Result := true;  //TimeOut
end;



И всегда мгновенно получаю в Result false
Почему так происходит??


DelphiN!   (2007-06-19 13:22:00) [21]


> clickmaker ©   (19.06.07 13:11) [1]


Я просто хочу проверить как ф-ия WaitForSingleObject ожидает закрытия мьютекста, тоесть я хочу получить от нее тайм аут в данном случае, просто для проверки, но тайм аут я не получаю!


> Игорь Шевченко ©   (19.06.07 13:12) [2]


Но ведь ф-ия WaitForSingleObject должна замораживать поток до тех пор, пока указатель MHandle существует, либо не был превышен тайм аут? Тоесть в моем случае я должен получить через некоторое время тайм аут, так как я не закрываю указатель MHandle, но вместо тайм аута я получаю в результате функии 0 и ее мгновенное завершение!


Сергей М.   (2007-06-19 13:16:00) [22]


> Result := false // Error


Чтой-то вдруг error ?
В чем ты видишь ошибку при этом ?


Сергей М.   (2007-06-19 13:15:00) [23]


> всегда мгновенно получаю в Result false
> Почему так происходит??
>


Потому что мьютекс успешно занят тек.потоком при вызове тобой ф-ции WaitForSingleObject


Игорь Шевченко   (2007-06-19 13:12:00) [24]


>
> И всегда мгновенно получаю в Result false
> Почему так происходит??


Ты получаешь, что Mutex для твоего процесса доступен. Это тебя удивляет ?


clickmaker   (2007-06-19 13:11:00) [25]

а какой смысл создавать мьютекс с bInitialOwner = False и тут же приниматься ждать его? в том же процессе/потоке, причем


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо