日期:2014-05-19  浏览次数:20629 次

★★★非常奇怪的问题,怎么会调到Dispose()函数★★★
碰到一个奇怪的问题,写了一个类,类中定时去缓存一个数据表,缓存完毕后会发出一个自定义的消息,消息参数中有DataTable的一个值,缓存的表就存在这个参数中,程序中去映身这个消息事件,然后用下列代码去给一个DataGridView表格做绑定
        dataGridView1.DataSource   =   e.BufferTable;
        奇怪的是,我单步执行一点错没有,数据显示也正常,只要把断点去掉,第一遍获取数据执行很正常,第二遍就会出错,返回的数据表检测是没有错的,我发现只要第二次执行这条绑定,程序自动调用了窗体的Dispose();函数,许多资源被释放了,但只要把这条绑定的语句注释掉,就不会出错,Try不到错误,为什么会这样,数据绑定的时候怎么会调这个函数,单步执行怎么一点错误没有。
  哪位达人碰到过,指点一下吧,非常感谢。

------解决方案--------------------
应该不会的。

可以试试:
dataGridView1.DataSource = null;
dataGridView1.DataSource = e.BufferTable;
------解决方案--------------------
试试:
dataGridView1.DataSource = null;
dataGridView1.DataSource = e.BufferTable;
------解决方案--------------------
大致说说你的from??
如何创建如何显示

------解决方案--------------------
在一个按钮事件中启动一个类,类中大约有二个线程,一个线程是按指定间隔检测网络是否通畅,......
================
两个可能,一个这个类是否为局部变量,到时可能会被.net 回收调
一个是你如何传入 事件参数的??
是否这个事件参数可能会被回收
------解决方案--------------------

一个多线程 委托 例子
http://blog.csdn.net/hertcloud/archive/2007/04/07/1556112.aspx

------解决方案--------------------
你是不是定义了析构函数?