环境:在基于C#的PDA开发时,使用设备环境WINCE.
情境:在界面A调用界面B
B b=new B;
b.ShowDialog();
同样的在界面B使用同样的方法调用出界面C,
C c=new C;
c.b=this;//将对象B传到C,用于关掉B。
c.ShowDialog();
但是在界面C点击按钮后,要同时关掉C和B,返回第一个界面A。
this.Close();//关掉C
b.Close();//关掉B
这时在b.Close();这段代码在Windows的模拟环境下运行没问题,但是拿到正式的PDA WINCE环境下会导致设备程序闪退。
暂时解决方案:在PDA WINCE环境下运行时,将b.Close()替换成b.Dispose()即可正常运行,但同时,Windows模拟器上,开始闪退。
求大神解释这是为什么,另外有没有比较好的方法解决俩边不兼容的情况。谢谢。
目前查到的情况是和.net库的垃圾回收有关系,但是看不太懂。而且是俩者环境的回收机制不一样?