收录日期:2020/06/01 04:29:18 时间:2016/07/16 21:40:04 标签:进程/线程/DLL
我在一个子窗口弹出出就启动一个线程去执行,里面有用到子窗口的指针,

如果线程执行到窗口还关闭时是正常的,如果线程还没执行完子窗口就关闭了那么程序就会出错

说内存不能为read

有什么好办法可以判断线程里指向窗口的指针是否可以为read

我用IsBadWritePtr 和IsBadReadPtr还是没作用
引用楼主 alangsos 的回复:
我在一个子窗口弹出出就启动一个线程去执行,里面有用到子窗口的指针,

 如果线程执行到窗口还关闭时是正常的,如果线程还没执行完子窗口就关闭了那么程序就会出错

 说内存不能为read

 有什么好办法可以判断线程里指向窗口的指针是否可以为read

 我用IsBadWritePtr 和IsBadReadPtr还是没作用

可以用结构化异常处理__try,__except来捕获这种错误,这样在有异常发生的时候你的线程就自己退出吧
应该在窗口退出前检测线程是否结束。既然是窗口创建的线程,就应该有线程的句柄。这样的话,在窗口退出前调用WaitForSingleObject(hThread, -1)等待线程结束就好了。
在窗口关闭时,等待线程结束才最后关闭,waitforsingleobject
线程结束时发出个事件,通知窗口可以关闭了.

gl
在线程中最好是用SendMessage,PostMessage方式去通知窗口,
而不是直接去操作窗口指针

判断窗口有效性可用 IsWindow()

还有在窗口关闭时可WaitForSingleObject一下线程

使用FORM(方法:METHOD=“POST”)提交表单时,怎样让接受页不在原窗口中打开 那里有提供Windows XP Professional 的IIS下载的地方? 数据访问的问题? linux下如何看网卡是千兆还是百兆的??? 请高手指点!!! 超级简单问题---visual studio.net2003 总共几张碟(包括.net msdn) 上地的一个位置?问问大家? 有一个GUI的问题~~~~~解决就给分~~~~~ 字符转字符串是如何转换的 问一个关于一个大公司(或大型外企)面试的流程 关于导入导出的问题 求一条查询语句!!! 哪里能下到 DriverStudio 的教材或 用DriverStudio 编写的驱动的源代码? 如何根据已知的三个点或更多的点来画圆弧? -初学asp,应看什么书 怎样显示隐藏表单元素? 关于购买sql server2000的问题! 字符操作问题。具体请看内容。 VPN不能穿过ADSL MODEM! 意外的收获!!! VPN不能穿过ADSL MODEM! 多试图问题 单选框如何实现不能被选定状态 怎样恢复双系统菜单 谁有《JAVA类库大全(中文版)》的电子书下载地址呀 怎样将DBgrid中内容打印出来? 等中国强大了,非踩死日本!! 能不能将javascript的值付给php的变量 菜鸟问题,抢分 为什么我的程序在.net framework 2.0beta 上不能运行?