如何把这样一个程序改为事件驱动?
程序简写如下:$beginTime=TimerInit()
$winTitle="我设置的标题"
while 1
if WinActive($winTitle) Then
$beginTime=TimerInit() //窗口在活动就重置计时
EndIf
if WinExists($winTitle) then
$checkTime=TimerDiff($beginTime)
$iIdleTime = _Timer_GetIdleTime() //得到时间间隔
Else
$beginTime=TimerInit() //窗口不存在就重置,以免新开窗口就直接关闭
$checkTime=0
$iIdleTime=0
EndIf
if $iIdleTime >= 1680000or $checkTime >= 1680000Then
If WinExists($winTitle) Then
Winkill($winTitle)
msgbox(64,"提醒"," 我把窗口关掉了!")
EndIf
$beginTime=TimerInit()
$iIdleTime = 0
$checkTime = 0
EndIf
WEnd
这样执行后的程序,发现CPU占用很是高,查了一下,事件驱动应该可以解决此问题,请教高手,如何改写? 这个事件没关系,主循环插个sleep(1)即可,或者用AdlibRegister() AdlibRegister
AdlibUNRegister 事件模式,消息模式是对图形界面GUI处理方式来讲的
CPU占用很是高,是因为你一直在让CPU做事,sleep一下,让CPU休息休息就会好的
页:
[1]