当前位置:首页 >> 信息与通信 >>

BCB中实现延时


中实现延时(不依赖机器的速度 不依赖机器的速度) 如何在 BCB 中实现延时 不依赖机器的速度
因为 Sleep 的作用是把当前线程转为休眠状态(暂时失去 CPU 资源)一段时间,而不是仅仅“延时”。 所以,你的程序在使用 Sleep 后,整个线程,包括消息循环都没有执行的机会。在 GUI 主线程里面要 慎重使用这个函数,因为整个界面都会被“Sleep”。你可以使用 T

imer,或者自己在循环里面判断时间 流逝,同时使用 Application->ProcessMessages(),以保证消息队列的及时处理。
Sleep( 我常用: 用两个 GetTickCount( )函数相减得到时钟数, )的缺点是延时时,不再响应消息,若时间较长,象死了一样,所以,

void {

delay(unsigned

int

n);

//

延长 n 毫秒

int

t0=GetTickCount(

);

while

(GetTickCount()-t0<n) Application->ProcessMessages(); // 响应消息

}

本文主要介绍了分别用 TTtimer 控件,Sleep 函数,GetTickCount 函数来实现延时的方法: 1)TTtimer 控件 TTtimer 控件的实质是调用 Windows API 定时函数 SetTimer 和 KillTimer 来实现的,并简 化了对 WM_TIMER 消息的处理过程。通过设置 OnTimer 事件和 Interval 属性,我们可以很方便的产 生一些简单的定时事件。 2)Sleep 函数 Sleep 函数用来使程序的执行延时给定的时间值。Sleep 的调用形式为 Sleep(milliseconds), 暂停当前的进程 milliseconds 毫秒。Sleep 的实现方法其实也是调用 Windows API 的 Sleep 函数。例 如: sleep(1000); //延迟 1000 毫秒

Sleep 会引起程序停滞,如果你延迟的时间较长的话,你的程序将不能够响应延时期间的发生的其 他消息,所以程序看起来好像暂时死机。 3)GetTickCount 函数 在主程序中延时,为了达到延时和响应消息这两个目的,GetTickCount()构成的循环就是一种 广为流传的方法。例如: procedure Delay(MSecs: Longint); //延时函数,MSecs 单位为毫秒(千分之 1 秒) var

FirstTickCount, Now: Longint; begin FirstTickCount := GetTickCount(); repeat Application.ProcessMessages; Now := GetTickCount(); until (Now - FirstTickCount >= MSecs) or (Now < FirstTickCount); end;


相关文章:
延时处理流程
设置好以后,按 Ok,然后 LRT 要关闭一下。 1、打开 LRT,选择你要处理的照片...Effects(简称 AE)进一步处理,比如推拉摇移, 稳定性处理,最后生成延时片片段。...
STM32的几种延时方法
这里面也有两种方式实现: a.中断方式 如下,定义延时时间 time_delay,SysTick_Config()定义中断时间段,在中断中 递减 time_delay,从而实现延时。 volatile unsigned...
怎样编写精确的延时函数
2.1 短暂延时 可以在 C 文件中通过使用带_NOP_( )语句的函数实现,定义 一系列不同的延时函数,如 Delay10us( )、Delay25us( )、 Delay40us( )等存放在...
计算机延时程序的设计与实现
计算机的精确延时程序正在进行构思设计阶段, 正在面临着一个如何提高计 算机的精确延时的问题。现实中的问题是:可不可以通过计算机的精确延时实现 计算机开机,通过...
VC++七种延时方式
VC++七种延时方式 方式一:VC 中的 WM_TIMER 消息映射能进行简单的时间控制。首先调用函数 SetTimer() 设置定时间隔, SetTimer(0,200,NULL)即为设置 200ms 的...
51单片机的几种精确延时
若定时器工作在方式 2, 则可实现极短时间的精确延时;如使用其他定时方式,则要考虑重装定时初值的时间(重装 定时器初值占用 2 个机器周期) 。 在实际应用中, ...
在VB中实现延时(等待)的几种方法
中实现延时(等待) 在 VB 中实现延时(等待)的几种方法在程序流程中经常要延时一段时间后再继续往下执行,在 VB 中常用的有以下几种方法(因为 Timer 控件 控件...
C及汇编延时程序
延时,利用定 时器来实现延时, 如果非得用循环延时,在 C 中也通常嵌入汇编实现,这样误差比 较小 在论坛上看到不少不错的延时程序,整理如下共同分享: 精确延时...
汇编延时程序
51 单片机 Keil C 延时程序的简单研究 应用单片机的时候,经常会遇到需要短时间...那么存在 r0 的数就是(20-2)/2。用这种方法,可以非常方便的实现 256us ...
delay延时教程
方法如下:编写一个实现延时的函数,在该函数的开 始置某个 I/O 口线如 P1.0 为高电平,在函数的最后清 P1.0 为低电平。在主程序中循环调用 该延时函数,...
更多相关标签:
用定时器实现1s的延时 | 非延时实现按键消抖 | js实现延时 | 如何实现软件延时 | c语言实现延时 | 单片机实现延时的方法 | linux 实现网络延时 | 如何实现断电延时 |