C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Как использовать GetExitCodeProcess() вместо IsTask() / Процессы и потоки / Приложение

Как использовать GetExitCodeProcess() вместо IsTask()

В Windows 3.1, API функция IsTask() можно было использовать для определения запущен-ли всё ещё процесс или уже завершён. В Win32 API эта функция считается устаревшей.

В Win32 API для этих целей используется API функция GetExitCodeProcess(). Эта функция получает в качестве первого параметра дескриптор и возвращает код выхода либо STILL_ACTIVE во втором параметре:

   BOOL GetExitCodeProcess(hProcess, lpdwExitCode) 



   HANDLE hProcess;
   LPDWORD lpdwExitCode; 



Как альтернативу, можно так же использовать WaitForSingleObject(). Передаём дескриптор процесса в качестве первого параметра и значение таймаута в качестве второго:

   DWORD WaitForSingleObject(hObject, dwTimeout) 



   HANDLE hObject;
   DWORD dwTimeout; 



Дескриптор процесса сообщает, когда процесс завершён. Если мы хотим просто опросить, то в качестве таймаута надо передать 0 (ноль) либо запустить другой поток со значением таймаута INFINITE, чтобы ждать его завершения.