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:     procedure PostATask(pvTaskWorkProc: TOnTaskWorkProc; pvTaskData: Pointer = nil;
          pvRunInMainThread: Boolean = False; pvRunType: TRunInMainThreadType =
          rtSync); overload;
  
  
      /// <summary>
  
negative.code: 
  end;
  
  procedure TIocpTaskMananger.PostATask(pvTaskWork: TOnTaskWorkStrData; const
      pvStrData: string; pvRunInMainThread: Boolean = False; pvRunType:
      TRunInMainThreadType = rtSync);
  var
    lvRequest:TIocpTaskRequest;
  begin
  