// Private -------------------------------------------------------
 private void DoMultiRsp(ActiveAssociation assoc, IDimse request, IDicomCommand rspCmd, IMultiDimseRsp mdr)
 {
     try {
         assoc.AddCancelListener(rspCmd.MessageIDToBeingRespondedTo, mdr.CancelListener);
         do {
             DataSet rspData = mdr.Next(assoc, request, rspCmd);
             IDimse rsp = _associationFactory.NewDimse(request.PresentationContextId(), rspCmd, rspData);
             assoc.Association.Write(rsp);
             DoAfterRsp(assoc, rsp);
         } while (rspCmd.IsPending());
     }
     finally {
         mdr.Release();
     }
 }