anchor.diff:  procedure TASyncInvoker.Terminate;
   begin
     FTerminated := True;
  +  FWaitEvent.SetEvent;
  +end;
  +
  +procedure TASyncInvoker.WaitForSleep(pvTime:Cardinal);
  +begin
  +  FWaitEvent.ResetEvent;
  +  FWaitEvent.WaitFor(pvTime);
   end;
   
   procedure TASyncInvoker.WaitForStop;
  
positive.code: begin
    inherited Create;
    FStopEvent := TEvent.Create(nil, True, True, '');
  end;
  
  destructor TASyncInvoker.Destroy;
  begin
    FStopEvent.Free;
    inherited;
  end;
  
  
negative.code:     FOnAsyncEvent: TOnASyncEvent;
      FTerminated: Boolean;
      FStopEvent:TEvent;
      FWaitEvent: TEvent;
      procedure InnerASync(pvWorker:TASyncWorker);
    public
      constructor Create;
      destructor Destroy; override;
      procedure WaitForSleep(pvTime:Cardinal);
  
      procedure Start(pvASyncEvent: TOnASyncEvent);
      procedure Terminate;
  