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

要完成之放棄作業的逾時。

適用於