大家好!
我的问题是:在将DataTalble绑定到DataGrid之后,在另外一个线程修改DataTable,导致程序出现NullReference异常。大概代码如下:DataTable tb=new DataTable();
//     初始化tb...//
DataGrid gd=new DataGrid();
gd.DataSource=tb;/*******创建线程对tb进行修改**************/
Thread mythread=new Thread(ThreadFunction)
mythread.Start();请问怎么解决这个问题,多谢!我是在vs03下用c++写的,程序非常不稳定,运行一段时间就会出现异常。各位有没有遇到过类似情况,数据绑定对线程同步有要求吗?

解决方案 »

  1.   

    你最好在绑定的时候,DataTable对象是否有效
      

  2.   

    我发现问题的答案可能是datatable绑定到datagrid上后,不能对datatable的结构进行修改,如添加,删除行与列。
    我试过 添加行,添加一个定时器控件,在事件处理中添加删除行,datagrid可以动态显示对datatable的修改。但是定义一个线程,在这个线程中对datatable进行修改,启动线程后,datagrid很不稳定,如果对datatable修改的过于频繁,会出现异常报错或程序不响应的问题。
    我后来看到msdn里说,对绑定后的数据源(datatable),不能进行添加行操作,就把对datatable的修改变为只修改数据而不改变结构(添加删除行等)程序运行正常,目前还没出现错误。
      

  3.   

    线程执行顺序不定,你的代码是否会出现DataTable在一个线程中还未实例化,结果在另一个线程中进行了访问。