| Предыдущий | Следующий |
| RPC_E_CANTCALLOUT_ININPUTSYNCCALL | RPC_E_THREAD_NOT_INIT |
RPC_E_WRONG_THREAD
Что означает RPC_E_WRONG_THREAD
RPC_E_WRONG_THREAD означает нарушение COM apartment ownership: interface pointer вызывается не из того thread/apartment, для которого он был получен или marshaled.
Что проверить
- Сохраните thread/apartment получения pointer и thread/apartment фактического вызова.
- Для STA верните operation в owning apartment либо передайте interface стандартным COM marshaling.
- Для передачи между STA/MTA используйте GIT или другой поддерживаемый механизм, а не копирование raw pointer.
- Проверьте callbacks/worker threads, где pointer мог пережить apartment teardown.
Как подтвердить исправление
Исправление подтверждается вызовом interface из owning apartment либо через штатно marshaled proxy: прежний сценарий проходит без RPC_E_WRONG_THREAD и без передачи raw interface pointer между apartments.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.