| Предыдущий | Следующий |
| UCEERR_UNCHANGABLE_UPDATE_ATTEMPTED | UCEERR_REMOTINGNOTSUPPORTED |
UCEERR_NO_MULTIPLE_WORKER_THREADS
UCEERR_NO_MULTIPLE_WORKER_THREADS: смысл кода и диагностика
UCEERR_NO_MULTIPLE_WORKER_THREADS — HRESULT, относящийся к области WPF/Media Integration Layer. Подсистема композиции не поддерживает выполнение этой операции несколькими рабочими потоками.
В случае UCEERR_NO_MULTIPLE_WORKER_THREADS статус связан с композицией WPF и аппаратным ускорением. В случае UCEERR_NO_MULTIPLE_WORKER_THREADS для анализа важны версия драйвера, render tier, жизненный цикл визуальных ресурсов и первый сбой render thread.
Практический вывод для UCEERR_NO_MULTIPLE_WORKER_THREADS: этот HRESULT фиксирует описанное условие, но сам по себе не показывает, какой участник операции первым нарушил контракт. Для UCEERR_NO_MULTIPLE_WORKER_THREADS найдите первый вызов, вернувший статус, и только после этого меняйте конфигурацию подсистемы WPF/Media Integration Layer.
Как читать имя UCEERR_NO_MULTIPLE_WORKER_THREADS
Имя UCEERR_NO_MULTIPLE_WORKER_THREADS помогает сузить поиск: NO — отсутствие объекта или возможности; MULTIPLE — технический маркер «multiple»; WORKER — технический маркер «worker»; THREADS — технический маркер «threads». Эти части имени не заменяют документацию API, но позволяют проверить, что журнал и код относятся к одному и тому же условию.
Проверка причины
В случае UCEERR_NO_MULTIPLE_WORKER_THREADS статус затрагивает файловую или потоковую операцию. В случае UCEERR_NO_MULTIPLE_WORKER_THREADS фиксируйте разрешённый путь, владельца, режим открытия и состояние сопутствующих файлов.
- Для UCEERR_NO_MULTIPLE_WORKER_THREADS запишите фактический путь/URL, режим доступа, объём данных и первый низкоуровневый код ввода-вывода.
- При разборе UCEERR_NO_MULTIPLE_WORKER_THREADS сопоставьте создание и уничтожение визуальных ресурсов, дескрипторов и partition/channel.
- При разборе UCEERR_NO_MULTIPLE_WORKER_THREADS не продолжайте использовать объект композиции, который уже перешёл в faulted или zombied-состояние.
- При разборе UCEERR_NO_MULTIPLE_WORKER_THREADS сохраните исключение верхнего уровня, внутренний HRESULT, стек render thread и предшествующие события графического драйвера.
- При разборе UCEERR_NO_MULTIPLE_WORKER_THREADS проверьте видеодрайвер, удалённый сеанс, аппаратное ускорение и воспроизведение с программным рендерингом.
Какие данные собрать
- Для UCEERR_NO_MULTIPLE_WORKER_THREADS зафиксируйте модель GPU, драйвер, WPF render tier, тип сеанса и момент сбоя относительно изменения окна/дисплея.
- Для UCEERR_NO_MULTIPLE_WORKER_THREADS получите дамп первого исключения render thread, а не только последующей ошибки интерфейса.
- Для UCEERR_NO_MULTIPLE_WORKER_THREADS сократите сцену до минимального визуального дерева и поочерёдно верните эффекты, текст и bitmap-ресурсы.
Критерий успешного исправления
В случае UCEERR_NO_MULTIPLE_WORKER_THREADS исправление UCEERR_NO_MULTIPLE_WORKER_THREADS подтверждено, когда исходный сценарий завершается ожидаемо, журналы больше не содержат этого статуса, а отдельный отрицательный тест по-прежнему корректно обнаруживает описанное условие.
Ссылки по UCEERR_NO_MULTIPLE_WORKER_THREADS
Нужно найти другой код? Найти другой код состояния или ошибки.