Am 21.10.2015 14:59 schrieb "Michael Schnell" <[email protected]>:
> CheckSynchronize() needs to be called by the main thread (in fact a
threat becomes the main thread _because_ it calls CheckSynchronize().

The part in parenthesis is wrong. CheckSynchronize checks for MainThreadID
which is determined independently of CheckSynchronize.

> The Events thrown by other Threads via TThread.Synchronize and
TThread.Queue are executed as sub-procedures of CheckSynchronize() and
hence they are executed in the main thread and they are executed in the
order they have been queued by other threads.

Better usage of terms: Exceptions are thrown (or raised), events are
signaled.

> AFAIR if an Event is in the queue same is executed and
CheckSynchronize(I) returns without checking if more Events are queued.

CheckSynchronize completely cwalks the lost before it returns.

> AFAIK the return parameter of CheckSynchronize() does not give any decent
result and needs to be ignored.

That is indeed always "false" right now. I should check sometime what it is
supposed to return... Probably whether at least one event got executed :/

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

Reply via email to