[Lazarus] Free Pascal and Lazarus learning center
Michael Van Canneyt
michael at freepascal.org
Mon Feb 1 13:55:33 CET 2016
On Mon, 1 Feb 2016, Anthony Walter wrote:
> Just a bit of information, my Cross.Codebot library has threading built in
> to the socket protocol implementations, so with regards to explaining it I
> could just show the source code or I could write it a again just to
> demonstrate.
>
> With regards to complexity, I never define a new thread class, which is the
> typical way most people think about working with threads in Free Pascal.
> Instead I have one thread class defined in my System unit, and you pass it
> your execute method along with an optional status handler. Your execute is
> called, the thread object is freed for you automatically, and you don't
> need to declare a new type.
>
[snip]
> procedure TDownloadForm.DownloadClick(Sender: TObject);
> begin
> if FThread <> nil then
> Exit;
> FThread := TSimpleThread.Create(Download, DownloadStatus,
> DownloadComplete);
> end;
This mechanism could easily be added as class static methods to TThread
itself. It would make life easier for many simple cases.
Class Procedure TThread.Spawn(MyProcedure,OnStatus,OnTerminate : TThreadProcedure); static;
Or "ExecuteInThread" instead of "Spawn".
Would you care to enter this as a feature request ?
Michael.
More information about the Lazarus
mailing list