anchor.diff:      procedure PostATask(pvTaskWork:TOnTaskWorkNoneData; pvRunInMainThread:Boolean =
           False; pvRunType:TRunInMainThreadType = rtSync); overload;
   
  -    procedure PostATask(pvTaskWork:TOnTaskWorkStrData; pvStrData:string;
  -        pvRunInMainThread:Boolean = False; pvRunType:TRunInMainThreadType =
  +    procedure PostATask(pvTaskWork: TOnTaskWorkStrData; const pvStrData: string;
  +        pvRunInMainThread: Boolean = False; pvRunType: TRunInMainThreadType =
           rtSync); overload;
   
  -    procedure PostATask(pvTaskWork:TOnTaskWork; pvStrData:string;
  -        pvRunInMainThread:Boolean = False; pvRunType:TRunInMainThreadType =
  +    procedure PostATask(pvTaskWork: TOnTaskWorkActionIDStrData; const pvActionID:
  +        Integer; const pvStrData: string; pvRunInMainThread: Boolean = False;
  +        pvRunType: TRunInMainThreadType = rtSync); overload;
  +    procedure PostATask(pvTaskWork: TOnTaskWork; const pvStrData: string;
  +        pvRunInMainThread: Boolean = False; pvRunType: TRunInMainThreadType =
           rtSync); overload;
   
       procedure PostATask(pvTaskWork:TOnTaskWork;
  
positive.code:   TIocpTaskMananger = class;
  
    TOnTaskWorkStrData = procedure(const strData: String) of object;
    TOnTaskWorkNoneData = procedure() of object;
    
    TOnTaskWork = procedure(pvTaskRequest: TIocpTaskRequest) of object;
  
negative.code: 
  end;
  
  procedure TIocpTaskMananger.PostATask(pvTaskWork: TOnTaskWorkStrData; const
      pvStrData: string; pvRunInMainThread: Boolean = False; pvRunType:
      TRunInMainThreadType = rtSync);
  var
    lvRequest:TIocpTaskRequest;
  begin
  