开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1625|回复: 4
收起左侧

[已解决] 关于界面窗口销毁问题

 关闭 [复制链接]
结帖率:79% (55/70)
发表于 2021-11-11 02:34:34 | 显示全部楼层 |阅读模式   四川省成都市
8精币
_启动窗口.按钮1被单击后加载_启动窗口1,后5秒_启动窗口1.按钮1被单击,然后执行_启动窗口1.销毁,后再调试输出“查看窗口1是否已关闭”,再等待10秒,在调试输出“程序结束”。

但是在这过程中_启动窗口1.并没有在调试输出“查看窗口1是否已关闭”结果前将窗口1销毁(消失),而是在与调试输出“程序结束”后一同关闭。


这是什么原因引起的,又怎么可以实现!!!

sd.e

2.71 KB, 下载次数: 6

最佳答案

查看完整内容

延时会卡死主线程。用这个就好了

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值
结帖率:100% (5/5)
发表于 2021-11-11 02:34:35 | 显示全部楼层   湖南省长沙市
延时会卡死主线程。用这个就好了

sd.zip

241.1 KB, 下载次数: 16

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:100% (18/18)

签到天数: 18 天

发表于 2021-11-11 04:34:13 | 显示全部楼层   福建省泉州市
精易模块的   程序_延时()
回复

使用道具 举报

结帖率:100% (18/18)

签到天数: 18 天

发表于 2021-11-11 04:50:20 | 显示全部楼层   福建省泉州市
延时()   是系统全局延时   
启动窗口的按钮事件子程序,按钮被点击后,代码命令就全部进入运行序列,后面载入窗口1,窗口1的执行序列就要排在启动窗口按钮时间执行序列的后面
也就是说,窗口1的按钮事件,被排到启动窗口按钮事件之后才执行了

精易模块的  程序_延时()  是优化过的,在延时时间内有个判断循环,有本程序的窗口或组件事件就释放控制权,优先处理窗口或组件事件


.版本 2

.子程序 程序_延时, 逻辑型, 公开, 不占用cpu,窗口不卡死,不影响其它代码执行
.参数 延时间隔, 整数型, 可空, 1000毫秒 = 1秒  留空为无限等待
.参数 延时单位, 长整数型, 可空, 默认为毫秒  0=毫秒  1=秒  2=分钟  3=小时
.局部变量 局_时间句柄, 整数型
.局部变量 局_时间, 程序延时

.判断开始 (延时单位 = 0 且 是否为空 (延时间隔))
    延时间隔 = 5000 × 60 × 60
    延时单位 = 5000 × 60 × 60
.判断 (延时单位 = 0)
    延时单位 = 1
.判断 (延时单位 = 1)
    延时单位 = 1000
.判断 (延时单位 = 2)
    延时单位 = 1000 × 60
.判断 (延时单位 = 3)
    延时单位 = 1000 × 60 × 60
.默认

.判断结束
局_时间.成员_时间 = -10 × 延时间隔 × 1000 × 延时单位
局_时间句柄 = CreateWaitableTimerA (0, 假, 0)
SetWaitableTimer (局_时间句柄, 局_时间, 0, 0, 0, 假)
.判断循环首 (MsgWaitForMultipleObjects (1, 局_时间句柄, 假, -1, 255) ≠ 0)
    处理事件 ()
.判断循环尾 ()
CloseHandle (局_时间句柄)
返回 (真)

回复

使用道具 举报

结帖率:100% (18/18)

签到天数: 18 天

发表于 2021-11-11 04:57:34 | 显示全部楼层   福建省泉州市
.版本 2

.子程序 程序_延时, 逻辑型, 公开, 不占用cpu,窗口不卡死,不影响其它代码执行
.参数 延时间隔, 整数型, 可空, 1000毫秒 = 1秒  留空为无限等待
.参数 延时单位, 长整数型, 可空, 默认为毫秒  0=毫秒  1=秒  2=分钟  3=小时
.局部变量 局_时间句柄, 整数型
.局部变量 局_时间, 程序延时

.判断开始 (延时单位 = 0 且 是否为空 (延时间隔))
    延时间隔 = 5000 × 60 × 60
    延时单位 = 5000 × 60 × 60
.判断 (延时单位 = 0)
    延时单位 = 1
.判断 (延时单位 = 1)
    延时单位 = 1000
.判断 (延时单位 = 2)
    延时单位 = 1000 × 60
.判断 (延时单位 = 3)
    延时单位 = 1000 × 60 × 60
.默认

.判断结束
局_时间.成员_时间 = -10 × 延时间隔 × 1000 × 延时单位
局_时间句柄 = CreateWaitableTimerA (0, 假, 0)
SetWaitableTimer (局_时间句柄, 局_时间, 0, 0, 0, 假)
.判断循环首 (MsgWaitForMultipleObjects (1, 局_时间句柄, 假, -1, 255) ≠ 0)
    处理事件 ()
.判断循环尾 ()
CloseHandle (局_时间句柄)
返回 (真)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表