| Предыдущий | Следующий |
| RO_E_MUST_BE_AGILE | RO_E_COMMITTED |
RO_E_UNSUPPORTED_FROM_MTA
Что означает RO_E_UNSUPPORTED_FROM_MTA
RO_E_UNSUPPORTED_FROM_MTA сообщает, что вызов Windows Runtime выполняется из многопоточного COM-apartment, тогда как эта операция или класс поддерживает только однопоточный apartment. Ошибка относится к модели потоков, а не к разрешениям пакета или параметрам самой операции.
Что проверить
- Определите, на каком потоке выполняется вызов и как для него инициализирован COM/WinRT.
- Проверьте документацию класса: требуется ли STA и привязан ли объект к потоку создания.
- Не передаётся ли STA-объект в фоновую задачу, пул потоков или продолжение асинхронной операции.
- Исключите повторную инициализацию того же потока с несовместимой моделью apartment.
Обычно вызов нужно маршалировать на подходящий STA-поток и там же соблюдать жизненный цикл объекта. Создание нового MTA-потока проблему не решает. После исправления отдельно проверьте асинхронные продолжения: они не должны неожиданно возвращать работу на поток с другой COM-моделью.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
