| Предыдущий | Следующий |
| ERROR_SERVICES_FAILED_AUTOSTART | ERROR_INSTALL_OPEN_PACKAGE_FAILED |
ERROR_COM_TASK_STOP_PENDING
description[Размещённой в COM задаче был отправлен запрос остановки, но она ещё не завершила остановку.]Задача COM всё ещё останавливается
ERROR_COM_TASK_STOP_PENDING сообщает об асинхронном состоянии жизненного цикла: обработка остановки уже выполняется, поэтому конфликтующий запрос запуска, завершения или перенастройки пока не может быть завершён.
Типичная обработка
- Дождитесь документированного уведомления о завершении.
- Не допускайте гонки нескольких запросов остановки.
- Используйте ограниченный тайм-аут завершения и записывайте незавершённую работу.
- Не освобождайте общие ресурсы, пока задача не подтвердит остановку.
Диагностика
Если состояние сохраняется, снимите стеки потоков, ожидающие COM-вызовы, состояние отмены и сведения о компоненте, отвечающем за завершение. Быстрое повторение той же команды может скрыть исходное зависание и усилить конкуренцию.
Автомат состояний жизненного цикла
Моделируйте состояния «работает», «запрошена остановка», «останавливается» и «остановлена» раздельно. После начала остановки новую работу следует отклонять или ставить в очередь, позволяя обратным вызовам очистки завершиться.
Диагностика зависшей остановки
Запишите идентификатор задачи, время запроса остановки, незавершённые COM-вызовы, токены отмены и поток-владелец. Дамп после истечения тайм-аута часто полезнее повторных команд остановки, изменяющих доказательства.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.