当前位置: 代码迷 >> Windows Mobile >> 在线程中关闭窗口的有关问题
  详细解决方案

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

热度:106   发布时间:2016-04-25 08:02:36.0
在线程中关闭窗口的问题
用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
------解决方案--------------------
最好是发消息到窗口,然后由窗口来完成关闭的过程
  相关解决方案