Tc延时tyuyan

//timeGetTime只能保证1ms的精度
function timeGetTime()
    return dllcall("winmm.dll", "DWORD", "timeGetTime")
end
function Delay(delayTime)
    //纪录开始时间
    var delayTimeBegin = timeGetTime()
    //初始化结束时间
    var delayTimeEnd = 0
    while(delayTimeEnd - delayTimeBegin < delayTime)
        //循环刷新(结束时间 - 开始时间) 直到与设置时间相等
        delayTimeEnd = timeGetTime()
    end
end

function SleepEx(dwMilliseconds, bAlertable)
    //winapi 挂起当前线程函数
    //如果bAlertable为 FALSE,则该函数在超时期限过去之前不会返回。如果发生 I/O 完成回调,则该函数不会返回,也不会执行 I/O 完成函数。如果 APC 排队等待线程,则该函数不会返回并且不会执行 APC 函数。
    //如果bAlertable为 TRUE 并且调用此函数的线程与调用扩展 I/O 函数(ReadFileEx或 WriteFileEx)的线程相同,则该函数将在超时期限已过或 I/O 完成回调时返回功能发生。如果发生 I/O 完成回调,则调用 I/O 完成函数。如果 APC 已排队等待线程 ( QueueUserAPC ),则该函数将在超时期限已过或调用 APC 函数时返回。
    return dllcall("kernel32.dll", "DWORD", "SleepEx", "DWORD", dwMilliseconds, "BOOL", bAlertable)
end

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注