Как запустить процесс в фоновом режиме в .net с помощью C # - PullRequest
0 голосов
/ 04 февраля 2010

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

Ответы [ 2 ]

3 голосов
/ 04 февраля 2010

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

backgroundWorker1.RunWorkerCompleted += 
                new RunWorkerCompletedEventHandler(
            backgroundWorker1_RunWorkerCompleted);

в пределах backgroundWorker1_RunWorkerCompleted вы можете связать свою сетку или установить свойство DataSource для DataTable, и оно будет в потоке пользовательского интерфейса.

Если вы уже сделали это и получаете ошибки, это может быть просто необработанное исключение в самом DoWork / поточном коде. Если это так, оберните вызов RunWorkerAsync в попытку и посмотрите, что вы получите.

Надеюсь, что поможет ...

0 голосов
/ 04 февраля 2010

Возможно, вы не можете изменить элемент управления DataGridView. Задавать CheckForCrossThreadcalls = false , может работает

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