我的程序是这样的
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。
想请问这种问题应该怎么解决?是不是两个窗体的切换设计有问题?