Site icon EfmSoft

Что означает код HRESULT 0x8001010E (RPC_E_WRONG_THREAD)?

 
Предыдущий Следующий
RPC_E_CANTCALLOUT_ININPUTSYNCCALL RPC_E_THREAD_NOT_INIT

RPC_E_WRONG_THREAD

Интерпретация результата

RPC_E_WRONG_THREAD (0X8001010E) означает: интерфейс используется из потока или apartment, отличного от того, для которого он был маршалирован. Для диагностики важен первый возврат кода в конкретной transaction или object generation, а не наиболее заметная ошибка в UI.

Английский маркер для сопоставления с исходной документацией: The application called an interface that was marshalled for a different thread.. Используйте его как поисковый ключ вместе с timestamp и transaction/session ID.

Что сохранить

Код-специфическая проверка

Сравните apartment, где получен interface pointer, с apartment текущего потока; прямой перенос pointer между STA/MTA не заменяет marshaling.

Проверка должна подтвердить именно условие «интерфейс используется из потока или apartment, отличного от того, для которого он был маршалирован» в текущем RTC object generation. Не используйте успешный retry после широкого reset как доказательство причины.

Восстановление

Измените только состояние или вход, непосредственно связанный с этой границей, и сравните первый HRESULT до и после исправления.

После изменения повторите тот же вызов и сравните первый HRESULT, достигнутую фазу и побочные эффекты. Исправление подтверждено только если прежнее условие «интерфейс используется из потока или apartment, отличного от того, для которого он был маршалирован» больше не возникает на сопоставимом входе.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version