On Wed, 09 Dec 2015 12:17:55 +0100
Michael Schnell <[email protected]> wrote:

> On 12/09/2015 11:45 AM, Mattias Gaertner wrote:
> >> Application QueuAsyncCall is implemented using TThread.Queue.
> > What is wrong with the current implementation?
> Nothing. But it uses another Queue. Queue handling needs OS calls for 
> waiting. I  want to avoid to do any OS Calls so I simply use what the 
> RTL offers for exactly this purpose.

Please take a look at the NoGUI widgetset. It does not use another
Queue.

 
>[...]
> > NoGUi has already a dedicated mainthread, TThread.Synchronize, 
> > TThread.Queue, Application.ProcessMessages, 
> > Application.QueueAsyncCall. Only SendMessage and TTimer are missing.
>[...]
> In fact I would not like to try to re-use the NoGUI code,

What code? It only contains the basic methods to let it compile. Any LCL 
interface must have at least that.

> especially as 
> I seem to remember that I read about several shortcomings of same (I did 
> not yet check myself). Is there a documentation on what exactly NoGUI is 
> supposed to provide ?

The NoGUI allows to compile a LCL application without a GUI. It has a few lines 
of code to connect the RTL.

 
> (I suppose this "Service Application" might replace "noGUI", but of 
> course same should stay in place for legacy projects. )

I guess implementing TTimer and SendMessage only needs a few hundred
lines. I see no problem adding that to the NoGUI widgetset.

Mattias

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

Reply via email to