сколько времени требуется для закрытия дескрипторов ядра в Windows при сбое приложения - PullRequest
0 голосов
/ 17 мая 2010

Я знаю, что Windows закрывает дескрипторы ядра при сбое приложения, но если я хочу дождаться этого события, могу ли я быть уверенным, что это произойдет в milisec или это может занять некоторое время? Я хотел бы вызвать новую функцию в тот момент, когда происходит сбой одного приложения, и я проверяю, имеет ли этот дескриптор значение NULL, но кажется, что в этом случае я не могу получить значение NULL.

Ответы [ 2 ]

2 голосов
/ 17 мая 2010

Сколько времени это займет, может варьироваться в зависимости от многих факторов, включая реализацию, тип сбоя и т. Д. Это может занять некоторое время.

Если вы хотите знать, когда произошел сбой процесса, вы должны настроить «сторожевой» поток или процесс, ожидающий приложения Process Handle , используя такую ​​функцию, как WaitForSingleObject . Когда процесс умрет, о событии будет сообщено, и вы сможете действовать соответственно.

0 голосов
/ 17 мая 2010

Windows не закрывает дескрипторы, когда приложение «падает» - она ​​закрывает их, когда процесс завершается, независимо от того, как процесс завершается. К тому времени, когда это происходит, переменные больше не существуют, потому что адресное пространство пользовательского режима было закрыто.

Что вы пытаетесь сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...