| Предыдущий | Следующий |
| ERROR_LB_WITHOUT_TABSTOPS | ERROR_CHILD_WINDOW_MENU |
ERROR_DESTROY_OBJECT_OF_OTHER_THREAD
Объект должен быть уничтожен потоком-владельцем
Объекты GUI часто привязаны к потоку. Для окон Microsoft прямо указывает, что поток не может вызвать DestroyWindow для уничтожения окна, созданного другим потоком. Аналогичные правила времени жизни USER-объектов защищают состояние, связанное с очередью сообщений создателя и взаимодействием с рабочим столом.
Этот статус часто вызывается централизованной очисткой, выполняемой рабочим потоком или потоком завершения работы, когда объект создал UI-поток. Объект может быть корректным и видимым; ошибка заключается в том, какой поток выполняет уничтожение.
Что проверить
- При создании объекта записывайте идентификатор создающего потока.
- Отправьте сообщение завершения или маршализуйте обратный вызов уничтожения в поток-владелец.
- Дождитесь очистки потоком-владельцем до выгрузки модулей, содержащих оконные процедуры.
- Избегайте глобального реестра объектов, безусловно уничтожающего GUI-дескрипторы из одного управляющего потока.
Важно отличие от ERROR_INVALID_WINDOW_HANDLE : владение может быть неверным, даже когда GUI-дескриптор всё ещё действителен.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.