设置DataGridView的大型DataSource时的性能

时间:2011-10-31 10:10:42

标签: c# winforms datagridview

我有一个相当大的数据集(1000行),我想在Windows窗体应用程序(.NET 3.5)中输入DataGridView。查询数据库中的数据,并构建DataTable非常快,但是当我设置DataGridView的DataSource属性时,它实际上需要大约一分钟才能使应用程序响应。

我尝试使用反射的魔法将DoubleBuffered设置为true,但这似乎没有效果。有什么提示吗?

只是澄清一下,具有可怕性能的代码就是这样:

dgv1.DataSource = dt;

'dt'是我建立的DataTable

1 个答案:

答案 0 :(得分:1)

我不知道这会对您的应用程序产生什么影响。

但是根据启动DataGridView填充的事件,我会使用BackgroundWorker,它在后台运行起来很有趣,释放应用程序,使其看起来没有反应。并且后台工作者也可以向调用它的主线程报告,使您能够实现一些软更新/进度条。

根据自己从数据源获取数据和绑定的经验,它总是需要一些时间。

protected BackgroundWorker _bw;
_bw = new BackgroundWorker;
_bw.DoWork += DoWorkMethod;

public void DoWorkMethod(object sender, DoWorkEventArgs e)
{
//Do work here.
}

这就是它的要点。您可以使用Completed和UpdateProgress方法来帮助显示进度条等...