On 2017-05-15 04:36, Michael Schnell wrote:
On 12.05.2017 16:37, Michael Van Canneyt wrote:

Check manually. What else is left ? There is no message queue, so no loop in which to check at regular basis.

For event processing in a not threaded project or in the main thread
of a threaded project you at best use the Event Queue provided by some
Infrastructure library (e.g. LCL or mse). IMHO, SimpleIPC might makes
sense, if you don't want to use one of those. (mse and an enhanced
NoGui LCL "Widget Type", I have done a working draft for, can provide
a message queue even with no binding to a GUI Widget Set).


Isn't that what the application onidle is for, a way to check messages using the application code in the LCL

But a question is (sorry I am not familiar with "onidle"), what happens when the application is not idle, but sort of idle? What classifies an idle state? i.e. what if the cpu is at 3 percent consumption, or 55 percent, or 2 percent? What classifies an onidle? this documented somewhere? Is onidle reliable or hit and miss where the app is not idle enough, in some cases?

But when using SimpleIPC for signaling to another process (executable,
e.g.  a Lazarus "Application" ) I suppose, you  need a thread to avoid
latency and/or huge CPU demand by polling to transfer the event to the
Main Thread via the Event Queue (e.g. by Application.QueueAsyncCall or
TTherad.Queue).

Does onidle need/use any of these?
And, there's always application.processmessages, which.. is poo pooed by many
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to