![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WaitForSingleObject не ожидает закрытия мютекста
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 и тут же приниматься ждать его? в том же процессе/потоке, причем