我有一个相当大的数据集(1000行),我想在Windows窗体应用程序(.NET 3.5)中输入DataGridView。查询数据库中的数据,并构建DataTable非常快,但是当我设置DataGridView的DataSource属性时,它实际上需要大约一分钟才能使应用程序响应。
我尝试使用反射的魔法将DoubleBuffered设置为true,但这似乎没有效果。有什么提示吗?
只是澄清一下,具有可怕性能的代码就是这样:
dgv1.DataSource = dt;
'dt'是我建立的DataTable
答案 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方法来帮助显示进度条等...