[Lazarus] Using Lazarus for non-graphical apps

Michael Schnell mschnell at lumino.de
Tue Jan 7 15:05:47 CET 2014

On 01/07/2014 02:22 PM, Michael Van Canneyt wrote:

> I think you misunderstand TThread.Queue. It does not notify the main 
> thread.
Yes it does (from the view of the user), when the environment is 
decently crafted (in fact it does the same as TThread.synchronize only 
that the thread does not wait until the mainthread  is finished with 
executing the queued procedure). In the end they call "WakeMainThread()" 
on that behalf.

> On the contrary, CheckSynchronize needs to be called in order to let 
> TThread.Queue do its work.
That is exactly what I meant to say. As well TThread.Queue and 
TThread.Synchronize need CheckSynchronize to be called. In fact 
CheckSynchronize needs to be called by the main thread and any "queued" 
or "synchronized" procedure in the end is executed by being called from 
withing CheckSynchronize.

(Sorry if I was unclear.)

More information about the Lazarus mailing list