Vinzent Hoefler schrieb: > On Thursday 13 December 2007 19:55, Mattias Gaertner wrote: >> Has someone already created a unit for light weight threads? >> >> Something like: Create a group of 4 threads named 0,1,2,3 and execute >> a procedure/method? > > for i := 0 to 3 do > Handle[i] := tThreadId(BeginThread (Func {tThreadFunc}, > @FuncArg[i])); > > for i := 0 to 3 do > Result[i] := WaitForThreadTerminate (Handle[i], 0);
I think some thread pool class is more important, it would be basically the same as above for i := 0 to 3 do Handle[i] := TTask(ThreadPool.QueueTask(Func {tThreadFunc}, @FuncArg[i])); for i := 0 to 3 do Result[i] := WaitForTask(Handle[i], 0); but the threads are already idling and taking their tasks from a queue. It allows also scaling with the cores: the more cores you have, the more threads you put into your pool. _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel