[Lazarus] Threads and Libraries (dll and so)

Michael Schnell mschnell at lumino.de
Tue Feb 4 14:04:27 CET 2014


On 02/04/2014 01:39 PM, Sven Barth wrote:
> Upon creation of the QApplication class it remembers the thread ID and 
> every GUI widget is checked that it is owned by this thread ID as 
> well. Certain events like rendering are also checked for the thread ID.
>
While I don't exactly see the point (as each thread of the application 
will have it's own thread id and thus should be handled as "unrelated"), 
I am sure that you do know what you say, denying the possibility in 
question.

Anyway this is really bad news regarding the performance of KDE, QT etc 
(and consequence the LCL) on multiprocessor systems:

Doing multiple automatically updated widgets will perform a lot faster 
when done in multiple applications than in a single one. (We did check 
this with Delphi/Windows: same here.)

(Maybe in Windows this might be better: I once tried fooling the system 
by doing a DLL per thread and run each of them as a thread with it's own 
VCL instance. It did work but crashed after some time and I did not have 
the guts to go on hacking and track down that problem.)

-Michael




More information about the Lazarus mailing list