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.)
-Michael

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to