次の方法で共有


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

実行する破棄操作のタイムアウト期間。

適用対象