多次绑定DataGridView的DataSource会报错 NullReferenceExcepti

一、问题描述

最近做了一个winform的项目,数据绑定在datagridview中,datagridview中的数据需要删除,分页,更新等之类的操作,所以就涉及到了datagridview的重新绑定问题,而且这些操作都是使用的多线程。有的时候DataGridView的DataSource会报错 NullReferenceExcepti,甚至在程序入口处报错,提示NullReferenceExcepti。如下图(报错的时候忘了截图了,就是这个位置)

或者 

二、原因分析

经过仔细的验证和分析,这种错误是多线程引起的,引起得原因很多,有可能绑定的数据量比较大,或者重画datagridview控件复杂引起了线程阻塞。

三、解决方法

对绑定datagridview的操作使用多线程的委托方式,代码如下:

this.Invoke(new InvokeHandler(delegate ()
{
            this.DataGridViewProduct.DataSource = pageData.Data;
}));
原文地址:https://www.cnblogs.com/qtiger/p/5704169.html