在线程中关闭窗口的有关问题
在线程中关闭窗口的问题用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
[解决办法]最好是发消息到窗口,然后由窗口来完成关闭的过程