[Lazarus] Lazarus and Application.ProcessMessages

Paul Breneman list2010 at BrenemanLabs.com
Wed Dec 3 23:51:06 CET 2014


On 12/03/2014 04:37 PM, Terry A. Haimann wrote:
> I have a program that starts some background processes and then needs to
> go to sleep for 15 seconds or so and then come back and check on their
> statuses.  So I used a loop like the following:
>
> EndTime := Now + EncodeTime(0, 0, 15, 0);
> While Now < EndTime do
>        Application.ProcessMessages;
>
> The problem  is that the core this process runs on is running 60-80% cpu
> utilization.  Is there away to do something like this and not max the
> core out?  This computer is an i5 Desktop running Linux Mint 17-64.
>
> Thanks in advance,	T.

The quickest thing to do is to put Sleep(10) inside the while loop. 
That will help you get longer battery life on a laptop and a cooler CPU!

But I would normally use a separate thread.  There are a number of 
examples here (see ExThread---):
   http://turbocontrol.com/APro.htm
If you search CodeNewsFast you might be able to turn up a number on 
explanations on why I recommend using a separate thread.

Regards,
Paul
www.TurboControl.com





More information about the Lazarus mailing list