Поделиться через


ReceiveContext.Abandon Метод

Определение

Вызывает переход конечного автомата в прерванное состояние.

Перегрузки

Abandon(TimeSpan)

Вызывает переход конечного автомата в прерванное состояние с указанным значением времени ожидания.

Abandon(Exception, TimeSpan)

Вызывает переход конечного компьютера в прерванное состояние с указанным исключением и значением времени ожидания.

Комментарии

Abandon может перестать отвечать при наличии внешней транзакции и Complete вызове, а затем выполняется откат транзакции. Если Abandon вызывается до завершения отката транзакции, будет существовать состояние гонки, в результате чего вызов перестает Abandon отвечать. Это можно проиллюстрировать следующим примером псевдокода.

using (TransactionScope ts = new TransactionScope())   
{  
   try  
   {  
       rc.Complete();  
      ...  
   }  
   Catch (Exception)   
   {  
      rc.Abandon()  
   }  
}  

Это не рекомендуемый шаблон для работы с ReceiveContext. Вместо этого блок try/catch следует разместить за пределами область транзакции.

Abandon(TimeSpan)

Вызывает переход конечного автомата в прерванное состояние с указанным значением времени ожидания.

public:
 virtual void Abandon(TimeSpan timeout);
public virtual void Abandon (TimeSpan timeout);
abstract member Abandon : TimeSpan -> unit
override this.Abandon : TimeSpan -> unit
Public Overridable Sub Abandon (timeout As TimeSpan)

Параметры

timeout
TimeSpan

Время ожидания для завершения операции прерывания.

Применяется к

Abandon(Exception, TimeSpan)

Вызывает переход конечного компьютера в прерванное состояние с указанным исключением и значением времени ожидания.

public:
 virtual void Abandon(Exception ^ exception, TimeSpan timeout);
public virtual void Abandon (Exception exception, TimeSpan timeout);
abstract member Abandon : Exception * TimeSpan -> unit
override this.Abandon : Exception * TimeSpan -> unit
Public Overridable Sub Abandon (exception As Exception, timeout As TimeSpan)

Параметры

exception
Exception

Исключение, вызывающее операцию прерывания.

timeout
TimeSpan

Время ожидания для завершения операции прерывания.

Применяется к