多线程情况下winform被自动dispose问题

rryqsh 2009-10-29 06:43:10
我的程序是这样的
static class Program
{
public static Form AForm;
public static Form BForm;

public static Main()
{
AForm=new Form();
BForm=new Form();
Application.Run(AForm);
}
}

所以先出现的是AForm

在AForm中有个按钮,点一下以后执行
Program.AForm.Hide();
Program.BForm.Show();

然后我在BForm中点击一个按钮,其中使用this.Invoke调用一个比较长时间的多线程方法。
该方法结束时会刷新很多BForm中的控件,但是当时间比较长,或者说内存操作比较多的时候(有的时候能触发,有的时候又不能触发,这点就不明白为什么了)。
之后,在Program类的Application.Run(AForm);语句就会报空引用异常,检查以后好像是AForm.IsDisposed值是true。

想请问这种问题应该怎么解决?是不是两个窗体的切换设计有问题?
...全文
104 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajaxtop 2009-10-31
  • 打赏
  • 举报
回复
this.Invoke调用一个比较长时间的多线程方法。
该方法结束时会刷新很多BForm中的控件,但是当时间比较长,或者说内存操作比较多的时候(有的时候能触发,有的时候又不能触发


这个方法的问题,由于他的问题引起后面空异常


请仔细查看“调用一个比较长时间的多线程方法”

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧