[Lazarus] Lazarus IDE can't multi-task
nc-gaertnma at netcologne.de
Mon Jun 27 17:30:35 CEST 2011
Graeme Geldenhuys <graemeg.lists at gmail.com> hat am 27. Juni 2011 um 17:02
> On 06/27/2011 04:47 PM, Mattias Gaertner wrote:
> > The IDE reads the output in a loop using Application.ProcessMessages.
> And that's probably the mistake - a bad design choice. But I guess that
> can be contributed to the fact that 10 years ago, SMP systems where not
> that popular as they are today.
Yes, and it has some advantages. For example the code knows that no modal form
is open and can therefore open windows and set focus.
> Why not have a "populate message window" thread, which reads the
> compiler output. This thread is launched at the same time as (or by) the
> "compile my project" thread.
> My experimental IDE (which I use purely as a playground for ideas) use
> the method described above, and it works perfectly without pausing
> anything - modal dialogs or not.
My rewrite uses threads, so yes, a ShowModal will not stop compilation.
If the main thread gets busy, the thread might still get paused, when it needs
some information from the main thread.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Lazarus