RT,我在当前窗体定义了一个委托,之后给这个委托 付了 一个查询方法,这个查询方法是 给dgv赋值,在这个窗体上 有一导出的功能,把dgv的数据导出 之后调用 this.invoke(委托,null);
以上过程都是在线程中执行的,但是现在遇到一个问题 就是我点击导出之后 关闭窗体 就会报错,求高手 解答,如何在线程中 知道 这个窗体已经关闭了,如果这个窗体已经关闭 就不执行 this.invoke(委托,null);
这个方法了

解决方案 »

  1.   

    在Application.OpenForms集合里根据条件查询窗体,找不到就不执行
      

  2.   

    在这个窗体外的公共类中定义一个全局变量bool IsOpen,窗体打开的时候:IsOpen = true;窗体关闭FormClosing时间中:IsOpen = false;线程中通过判断IsOpen来获取窗体是否关闭。
      

  3.   

    不会,你在自己开的线程中访问到的Application.OpenForms也是实时更新的,刚才测试了一下
      

  4.   

    恩 我已经解决了 不过不是用你的这个方法,是把当前窗体的句柄传过去了,判断这个句柄是否为Zero
    一会试一下 你说的,谢啦兄弟
      

  5.   

    感谢回答,我最开始 也是这么想的 但是感觉不会这么简单,试了一下好用,但是个人感觉不太好,我用的是判断当前窗体的句柄 如果为Zero 不执行那个委托了,感谢回答