小弟写了三个线程 其中因为需要延时用了sleep函数 可是程序老死 不响应 我就自己写了个sleep函数
procedure sleepx(ms:Integer);
var
staretime:TDateTime;
begin
staretime:=Now();
while MilliSecondsBetween(staretime,Now())<ms do
begin
Application.ProcessMessages();
end;
end;
用来延时 可是cpu的占用率却一直高居不下 求解决的问题! 谢谢!
ps:延时是必须的
procedure sleepx(ms:Integer);
var
staretime:TDateTime;
begin
staretime:=Now();
while MilliSecondsBetween(staretime,Now())<ms do
begin
Application.ProcessMessages();
end;
end;
用来延时 可是cpu的占用率却一直高居不下 求解决的问题! 谢谢!
ps:延时是必须的
var
staretime:TDateTime;
begin
staretime:=Now();
while MilliSecondsBetween(staretime,Now()) <ms do
begin
Application.ProcessMessages();
Sleep(0);
end;
end;
多核编程
for
sleep(1)
Application.ProcessMessages
begin
while not Terminated do
begin
Synchronize(AA);
sleepx(1000);
end;
end;
procedure A.AA
BEGIN
fun(@KK,@id,True);
sleepx(3000);
fun(@GG,@ID,False);
sleepx(1000);
BB();
sleepx(1000);
fun(@LL,@ID,False);
sleepx(1000);
END
这个是线程之一 另外两个也是类似的 程序老假死....
procedure sleepx(ms:Integer);
var
staretime:TDateTime;
begin
staretime:=Now();
while MilliSecondsBetween(staretime,Now()) <ms do
begin
Sleep(0);
Application.ProcessMessages();
end;
end;
虽然本线程被sleep塞住了,但是别的线程可以继续运行