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

要完成的放弃操作的超时值。

适用于