Hello,

i would like to present my own library which can be used as single thread to multithread application move.

Some description is on my github url : https://github.com/tomas-raul/MultiTask


For example, you have simple methods like

LoadImage(Fn : string);

and this method you run over and over - for some image tranformation f.e. with this :

for i := 1 to 100 do

 LoadImage(ItToStr(i)+'.jpg');

With my library (and the precompiler) - you can do the same with multithread like :

for i := 1 to 100 do

LoadImage_MT_LOW(ItToStr(i)+'.jpg'); // this run this method in MultiTask environment with LOW priority (this is not thread priority, but place in task queue).

Today update is - integrated precompiler, which you can run from before build event and it create adekvate methods, and somethink else..

Precompiler show you help by -h param :D

Precompiler adds :

procedure Load_Image_MT( const id : integer; const item : iSuperObject; const fn : string); procedure Load_Image_MT_Last( const id : integer; const item : iSuperObject; const fn : string); procedure Load_Image_MT_Low( const id : integer; const item : iSuperObject; const fn : string); procedure Load_Image_MT_Normal( const id : integer; const item : iSuperObject; const fn : string); procedure Load_Image_MT_High( const id : integer; const item : iSuperObject; const fn : string); procedure Load_Image_MT_ASAP( const id : integer; const item : iSuperObject; const fn : string); procedure Load_Image_MT_Unique( const id : integer; const item : iSuperObject; const fn : string); procedure Load_Image_MT_Unique_Last( const id : integer; const item : iSuperObject; const fn : string); procedure Load_Image_MT_Unique_Low( const id : integer; const item : iSuperObject; const fn : string); procedure Load_Image_MT_Unique_Normal( const id : integer; const item : iSuperObject; const fn : string); procedure Load_Image_MT_Unique_High( const id : integer; const item : iSuperObject; const fn : string); procedure Load_Image_MT_Unique_ASAP( const id : integer; const item : iSuperObject; const fn : string);

For your code :

tIQDeploy_v4 = class(TObject) {class_MT}
   published
   {$I MT_onNewWork.inc}
procedure Load_Image(const id: integer; const item: iSuperObject; const fn: string); {gen_MT}
  {$I MT_def.inc}
  end;


implementation

{$I MT_impl.inc}


Tomas

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

Reply via email to