Winforms, используя BackgroundWorker для циклического перебора Datatable - PullRequest
1 голос
/ 16 ноября 2009

Пожалуйста, не могли бы вы высказать свое мнение о следующем (особенно, если это целесообразно или нет) ...

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

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

Пожалуйста, сообщите мне. Спасибо тебе!

1 Ответ

1 голос
/ 16 ноября 2009

Для длительной операции фоновый работник - лучший способ выполнить длинную задачу без остановки графического интерфейса.

Вы можете использовать событие рабочего ProgressChanged , чтобы обновить DataGrid. Обратите внимание, что вам придется обновить DataGrid с помощью метода Invoke, поскольку GUI должен обновляться из правильного потока, а Invoke передает ваше действие из потока BG в поток GUI.

...