On 10/21/2015 05:27 PM, Sven Barth wrote:

CheckSynchronize checks for MainThreadID which is determined independently of CheckSynchronize.

I see. I suppose the would-be MainThread is just the thread that is used to start the application. That does make sense. For the internal logic of the Lazarus application the fact that it calls CheckSynchronize() is what makes the difference.

Better usage of terms: Exceptions are thrown (or raised), events are signaled.
You are right. "thrown" is not a good wording for Events. I mostly read "fired" on that behalf.

CheckSynchronize completely walks the lost before it returns.
Thanks a lot for the correction. This is very important to me (see below).

> 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 :/


Maybe the original idea was to have CheckSynchronize execute only one Event and return TRUE if more events up are to be handled.

With this (not existing) design, I would need to do something like:

procedure TmyApplication.ProcessMessages;
begin
while CheckSynchronize() do (*nothing*) ;
end;

With the current design just

procedure TmyApplication.ProcessMessages;
begin
CheckSynchronize();
end;

would be OK, but the code above would work, as well and maybe should be preferred for possible future extension.

-Michael

--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to