Вам нужен фоновый поток.Вы можете настроить BackgroundWorker в своей форме или настроить базовую асинхронную модель с BeginInvoke в вашем обработчике событий, которому после завершения будет предоставлен другой метод в качестве обратного вызова.В фоновом режиме выполните весь процесс извлечения данных, а затем снова вызовите основной поток, когда вам нужно заполнить DGV (что должно занять гораздо меньше времени, когда вся информация будет в памяти).
* 1002проблема заключается в том, что пока основной поток занят, ожидая, когда БД вернется со всеми строками, система не может отвечать на любые другие пользовательские вводы или сообщения Windows (например, «перерисовать себя»).Windows увидит, что очередь сообщений для этого приложения выполняет резервное копирование, и пометит приложение как «не отвечающее».Не очень приятный пользовательский опыт.