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.

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

Reply via email to