delphi 怎么样实现1毫秒循环执行一次任务的函数?没有的我该怎么实现???(100分)

  • 主题发起人 主题发起人 wxm337766
  • 开始时间 开始时间
W

wxm337766

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi 怎么样实现1毫秒循环执行一次任务的函数?没有的我该怎么实现??
delphi 怎么样实现1毫秒循环执行一次任务的函数?没有的我该怎么实现??
 
n种方法:
fun c (xxx);
begin

for
if xxx then
exit;
sleep(100);
end;
end;

或者new线程,自己维护timer.
api settimer好像也可以,反正很多。
 
放个Timer控件不就得了
或者做个线程,和楼上一样,在线程里sleep一下
 
你要的精度太高了。一般的计算机都达不到的。除非你的任务计算量很小,
有一个多媒体定时器的第三方控件,可以试试。
 
1毫秒? windows不是实时操作系统
 
请问执行这个任务的函数需要多长时间?估计不止1毫秒吧。
 
要想达到这个要求几乎是不可能的
不过你可以试试内核时间对象
它的精度是100讷秒,但是你的处理过程一定要远小1毫秒
 
1.停止其他所有进程线程
2.本线程设置成最高优先级
3.死循环(也就是所谓的超级循环)
4.每次读CPU计数器 以判断1ms是否到时
就可以了
另一个办法不合你要求 就是写驱动程序
 
找个高精度定时器试试,如cnpack里有个,但你能让执行一次任务的函数在1MS内?
 
不可能做到吧,CPU的机制无法做到的,虽然说速度很快,但也无法保证别的程序或你的程序执行都少于1毫秒啊
或许你有N核,指定其中一个只运行你的程序也许能行
 
多人接受答案了。
 
后退
顶部