Многопоточный GridView зависает при обновлении себя - PullRequest
0 голосов
/ 10 декабря 2011

У меня есть многопоточное приложение, которое использует поток для постоянного обновления данных, представление сетки привязано к этой таблице в форме окна. Фоновый поток обновляет таблицу данных и иногда вызывает метод gridview beginInvoke (), чтобы gridview мог отражать некоторые обновления в режиме реального времени. Все выглядит хорошо и ошибок нет. Однако, когда я пытаюсь сделать любой вид изменения пользовательского интерфейса в виде сетки (щелкая по ячейкам, прокручивая, сортируя, даже изменяя размер или минимизируя максимизацию основной формы), он зависает, и я даже не вижу в чем ошибка Если кто-то знаком с этим gridview, когда он обновляет интерфейс и как я могу это исправить, я был бы очень рад поделиться со мной. Мое первое предположение, чтобы преодолеть эту проблему, - это дублировать другую таблицу данных и постоянно обновлять ее, а также привязывать gridview к этой. Я говорю это только потому, что когда я отменяю привязку gridview к базе данных, все прекрасно работает. Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 10 декабря 2011

Фоновые потоки НИКОГДА не должны обновлять интерфейс.То, что они делают, возможно, связано с плохим дизайном.Я бы сказал так:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...