Может ошибка в простом WPF, программирующем триггер "синий" экран?

Я делал некоторое программирование.NET в WPF, который включил чтение .png и .txt файлы, размещение изображений на холсте, перемещение их и затем удаление их, и внезапно я получаю bluescreen. Я не думал, что мое небольшое лужение могло вызвать проблему драйвера, пока я не перезапустил и сделал ту же самую вещь со своей программой, и я получил другую ошибку драйвера. Кажется, что графический драйвер Intel перестал работать, и мое разрешение пошло путем вниз. Никакой bluescreen во второй раз, все же. Я играл довольно быстро и свободное добавление и удаление элементов от детей холста. Мой вопрос, как такое простое программирование могло вызвать такую серьезную ошибку и как я фиксирую его?

5
задан Dave Clemmer 18 September 2011 в 03:30
поделиться

3 ответа

Похоже, у вас есть багги графический драйвер. WPF само по себе не может вызвать синий экран - но WPF вызов DirectX, который в свою очередь вызывает графический драйвер - и если графический драйвер содержит ошибки, те могут .

Вы не можете исправить это на уровне WPF, потому что WPF невиновен в этой конкретной проблеме. Вам нужно обновить свой графический драйвер. Возможный обходной путь Если нет обновлений, или последняя версия не исправляет, это отключить аппаратное ускорение для WPF, так как это может избежать удара битгического бита драйвера.

5
ответ дан 13 December 2019 в 05:35
поделиться

Попробуйте отключить оборудованную обработку оборудования WPF (DirectX) и см. Если ваша проблема уходит:

Настройки реестра реестра графики

выдержка:

Отключить опцию ускорения аппаратного обеспечения

HKEY_CURRENT_USER \ Программное обеспечение \ Microsoft \ avalon.graphics \ disablehwacceleration

DWORD

Опция отключения аппаратного ускорения позволяет отключить аппаратное ускорение для отладки и тестовых целей. Когда вы видите рендеринг артефактов в приложении, попробуйте отключить аппаратное ускорение. Если артефакт исчезает, проблема может быть с вашим видео драйвером.

Отключить опцию аппаратного ускорения - это значение DWORD, которое равно 0, либо 1. Значение 1 отключает аппаратное ускорение. Значение 0 позволяет ускорение оборудования, при условии, что система соответствует требованиям аппаратного ускорения; Для получения дополнительной информации см. Графику рендеринга ярусов.

1
ответ дан 13 December 2019 в 05:35
поделиться

Если вы не можете восстановиться после исключения, вы должны разрешить ему вытекать из вашего кода (часто снимая с него флажки или помещая его в неконтролируемое исключение). Если они остаются проверенными, их необходимо обслуживать на каждом уровне кода и, следовательно, на каждом уровне абстракции. SQLExceptions обычно попадает в эту категорию (их придется обернуть, так как они проверены).

Для этих исключений я обычно регистрируюсь на самом высоком уровне, но представляю страницу пользователям просто с подробным описанием того, что что-то пошло не так. Обычно мои пользователи не заинтересованы в трассировках стека. Но я обычно предлагаю им страницу, чтобы они могли описать, что они делали в то время, и зарегистрированное исключение привязывается к этому представлению через уникальный идентификатор (записанный в форме и в файле журнала за исключением). Это позволяет мне привязать действия пользователей к результирующему исключению.

Предполагается, что восстановление после SQLExceptions невозможно, и если база данных не работает, то нельзя сделать что-то значимое. Из этого, конечно, есть исключения. Вы можете обнаружить, что вы говорите с несколькими системами, и одна из них не означает, что вы не можете продолжать каким-либо образом (например, домашняя страница Amazon, как сообщается, полагается на 100 услуг, и должна работать независимо от некоторых из них).

Я ожидаю, что объявленные исключения будут на том же уровне абстракции, что и определяющий их интерфейс/методы. например, будет объявлено, что StartStore представляет собой исключение , а не SQLException (так как методы хранения данных о торговле являются реализацией StartStore - можно хранить в реляционной базе данных, JavaSpace и т.д.).

-121--1580173-

Требуется модуль «Группировка представлений по ». Дополнительные сведения об этом модуле (на странице проекта):

Этот модуль расширяет Views2 функциональные возможности с помощью функций группировки и агрегирования SQL.

Хотели ли вы создать представление, которое дисплеи верхние термины для определенного типа узла и количество узлов для каждого верхнего термина? Раньше нельзя было построить такой запрос, но теперь можно.

После установки модуля в ракурсы добавляется новая группа полей: SQL Aggregation. Группа полей имеет одно доступное поле SQL Aggregation: Group By Fields. Поле позволяет настроить многие аспекты полей «group by» SQL и «count ()».

В настоящее время доступна только функция SQL COUNT () из-за ограничения в Views2 API. Мы работаем над Views2 патчем, чтобы преодолеть ограничение. Патч будет представлен Views2 проекту и, надеюсь, вскоре после этого будет применен.

-121--4859746-

В качестве аппроксимации первого порядка все bluescreens вызваны водителями багги, и большинство ошибок водителя являются условиями гонки. (см. сноску 1 ) То есть это не обязательно конкретные операции,но точное время их взаимодействия с другими вещами, которые не под вашим контролем.

Так что если вы можете прижать его к последовательности операций, то вы можете просто избежать этой последовательности. но обычно единственным исправлением является получение лучших драйверов - и не обязательно последних драйверов, иногда лучше всего вернуться к более старому набору драйверов.

сноски:

1 Конечно, не все bluescreens являются драйверами, но они являются всеми из режима ядра, код пользовательского режима никогда не должен быть доступен для выполнения вызовов, которые сбиваются в режиме ядра, поэтому при попадании на bluescreen вы обнаружили ошибку в каком-либо компоненте, который работает в режиме ядра. Bluescreen по определению не является вашей ошибкой ( 2 ) (или не является только вашей ошибкой).

2 , если вы не пишете драйверы.

6
ответ дан 13 December 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: