У меня есть SQL-запрос, который возвращает сотни строк, и мне нужно добавить их в WinForms DataGrid таким образом, который все равно позволит пользователю просматривать/прокручивать DataGrid по мере того, как строки добавлено.Обновление DataGrid в BackgroundWorker Thread
В настоящее время я использую поток BackgroundWorker для выполнения инструкции SQL и прокручиваю строки в DataReader, прежде чем использовать Control.BeginInvoke для передачи каждой новой строки обратно в поток пользовательского интерфейса, где он добавляется в привязанный DataTable к DataGrid. На самом деле это не имеет желаемого эффекта (требуется некоторое время для обновления DataGrid, а затем после его обновления пользовательский интерфейс становится невосприимчивым).
Есть ли способ делать то, что я хочу, и если да, то как?
Редактировать: Я добавил thread.sleep к рабочему потоку, когда он прокручивается через datareader, что останавливает пользовательский интерфейс после того, как он перестает отвечать после первого обновления, но он все еще не так отзывчив, как хотелось бы (прокрутка немного нервничает, так как добавление строки в поток ui, похоже, украсть фокус).
Теперь я расскажу об этом. Спасибо за быстрый ответ :) –
Это отлично поработало, спасибо! –