首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Windows Mobile >

在线程中关闭窗口的有关问题

2012-01-16 
在线程中关闭窗口的问题用ShowDialog()打开一个窗口,窗口中启动一个线程,在线程中调用关闭这个窗口的方法

在线程中关闭窗口的问题
用ShowDialog()打开一个窗口,窗口中启动一个线程,在线程中调用关闭这个窗口的方法会报异常,AbortExpation。关闭窗口方法如下

C# code
        //在线程中关闭窗口        public void myFormClose()        {            this.Invoke(new DeMsgSignShow(MsgSignShow));        }        private delegate void DeMsgSignShow();        private void MsgSignShow()        {               //this.Close();            this.DialogResult = DialogResult.OK;        } 

虽然用了try但是在有些手机里还是会出现程序退出的情况。不过有些手机没事。
是我的这个关闭窗口的方法有问题么?请大家指教。

[解决办法]
有问题,不要在非页面线程中操作页面元素。
可以在线程中取得该窗体的句柄,然后用PostMessage发送WM_CLOSE消息关闭指定窗体。
[解决办法]
关闭窗口不要放在子线程,方在主线程中。。。。
[解决办法]
this.Invoke(new DeMsgSignShow(MsgSignShow));
改成 
BeginInvoke
[解决办法]
最好是发消息到窗口,然后由窗口来完成关闭的过程

热点排行