2010-07-01 11 views
4

Кто-нибудь испытал случай, когда приложение .Net Windows Forms вызвало сильное замедление рабочего стола?Экран Windows Forms/DatagridView мерцает

У меня есть приложение Windows Forms (.Net 3.5, C#) с datagridview в usercontrol. Иногда при одновременном запуске других приложений (я вижу это с комментариями Louts, но худшее поведение - пользователь с Reuters Bridge Station), переход на мое приложение, а затем в другое приложение заставляет весь рабочий стол мерцать, замораживать всех пользовательских взаимодействий, от нескольких секунд до минуты. (Все пользователи, использующие Windows XP Professional) Это происходит даже при небольшом количестве данных в сетке. Я не делаю никаких пользовательских работ в приложении, и я уверен, что ни один из моих кодов не работает в это время, чтобы позвонить любым освежает или перекрашивает.

Я уже включил функцию двойной буферизации, так что это не решение.

Одна интересная вещь, которую я нашел (на форуме MS), заключается в том, что настройка TransparencyKey формы решит проблему - иногда. (особенно для пользователей Louts Notes, но не для пользователей Bridge Station.) Пользователи, все еще затронутые, работают вокруг него, сводя к минимуму приложение после ввода данных, прежде чем переключиться на другие приложения. Любые идеи будут высоко оценены, так как я вытягиваю свои волосы по этому поводу. И у меня нет слишком много волос, чтобы начать.

YS

+0

К сожалению, мы использовали Lotus Notes тоже на работе, и у нас есть та же проблема, используя двойную буферизацию. Хороший вопрос! Я надеюсь, что кто-то поможет – Drake

ответ

1

Если это происходит при отладке с визуальной студии вы можете попробовать включить Framework debugging и Tracepoints для записи журнала записей в окне Output, этот метод является весьма полезным для получения в нижней части странных вопросов WinForms.

Как только вы обнаружили что-то, что, по вашему мнению, вызвано чрезмерно или излишне, вы можете вставить его в точку останова и посмотреть в стек, чтобы узнать, что вызывает проблему.

+0

Спасибо за ваш ответ, но я уже решил, что ни один из моих кодов не вызывает проблемы. – user144133

0

Использование школы слепых белок, поиск и устранение неисправностей, я, кажется, нашел гайку ... Я имею в виду обходной путь - Я набрал аппаратное ускорение дисплея до минимума (чуть выше «Нет»). Это, вместе с настройкой TransparencyKey, похоже, что он исправил мою проблему.

В конечном счете, пока это указывает на проблемы с драйверами дисплея (возможно, с несколькими мониторами), также существует проблема .NET, так как 1) Проблема возникает только при запуске моей программы. 2) Обновление драйверов на тестовом компьютере не устраняет проблему.

Смежные вопросы