BeginInvoke активирует форму - PullRequest
1 голос
/ 16 ноября 2010

У меня есть приложение WinForms, написанное на C #. Первый экран, который появляется при его открытии, - это экран панели инструментов, загрузка которого может занять некоторое время. Метод загрузки данных вызывается с помощью BeginInvoke для делегата. С этой частью все в порядке, моя проблема в том, что я хочу загрузить прочитанные данные в несколько таблиц. Код, чтобы вернуть меня в мой поток пользовательского интерфейса выглядит так

BeginInvoke(new Action<DashboardDataInfo, int>(LoadDashboardData), data, outbox);

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

...