anchor.diff:      end else if Assigned(FOnTaskWorkStrData) then
       begin
         FOnTaskWorkStrData(FStrData);
  +    end else if Assigned(FOnTaskWorkActionIdData) then
  +    begin
  +      FOnTaskWorkActionIdData(FActionID, FStrData);
       end else if Assigned(FOnTaskWorkNoneData) then
       begin
         FOnTaskWorkNoneData();
  
positive.code:     if lvRequest <> nil then requestPool.EnQueue(lvRequest);
      raise;
    end;
  end;
  
  procedure TIocpTaskMananger.SetActive(const Value: Boolean);
  
negative.code:     procedure PostATask(pvTaskWork:TOnTaskWorkNoneData; pvRunInMainThread:Boolean =
          False; pvRunType:TRunInMainThreadType = rtSync); overload;
  
      procedure PostATask(pvTaskWork: TOnTaskWorkStrData; const pvStrData: string;
          pvRunInMainThread: Boolean = False; pvRunType: TRunInMainThreadType =
          rtSync); overload;
  
      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;
  