Carregando DataTable lento quando vinculado a DataGridView.Datasource

Eu procurei por toda parte e não consigo entender isso. Eu estou trabalhando em uma interface do WinForms que está puxando grandes volumes de linhas que eu preciso exibir em um DataGridView. Eu já li tudo sobre limitação de contagem de linhas e paginação e não há absolutamente nenhuma maneira boa para eu fazer isso. Basicamente, estou trabalhando no controle TargetDataViewer do Extended Events Manager para SQL Server 2008 que escrevi no Codeplex.

http://extendedeventmanager.codeplex.com/

Estou limitado ao que posso fazer com base no alvo específico e como ele apresenta dados. O que estou tentando fazer é transmitir os dados que foram lidos de um destino para o DataGridView, da mesma forma que o Profiler, ou o SQL Server Management Studio, exibem dados à medida que são inseridos. Eu reescrevi muitos códigos e obtive dados do BackgroundWorker. e processá-lo em uma DataTable. Se eu não definir o DataGridView.DataSource = DataTable, eu posso carregar 300K + linhas de dados na DataTable em poucos minutos, ele realmente é executado rapidamente. Assim que eu adiciono o DataTable ao DataSource, ele demora quase a parar (em vez de alguns minutos, as mesmas 300K linhas podem levar uma hora e meia).

Eu sei que o problema não é meu código de processamento, é específico para ser vinculado ao DataGridView.DataSource e tenho código de tempo para provar isso. Eu não consigo descobrir como contornar isso. Para o Performance, posso ligar tardiamente o controle ao DataTable após os dados serem carregados, mas essa é uma experiência de usuário muito ruim. Eu vejo muitas pessoas reclamando sobre o impacto no desempenho do DataGridView ao carregar dados, então isso pode ser apenas uma limitação com a qual estou preso? Alguma ideia?

questionAnswers(1)

yourAnswerToTheQuestion