多线程操作窗体控件时,此时关闭窗体会导致报错,有什么方法可以解决么?
因为是第一次接触多线程的项目,对这方面的东西不太了解。
基本的流程是 利用Timer定时对数据库进行检索,然后将数据显示到窗体里的DataGridView中。
但是现在遇到这么一个问题,在窗体关闭的时候,this.Invoke方法会报错:“无法访问已释放的对象”。在FormClosing中添加了对Timer对象的中断后,出现这个错误的可能性减小了,但是仍会出现。
猜测是托管线程正在执行更新DataGridView的操作的时候,主线程关闭了窗口,将对象释放了。
试了一下在this.Invoke前添加了this.isDisposed的判断,但是还是有极小的可能会出现这个错误。请问下有什么方法可以让这个问题不会再出现呢?