ReceiveContext.Abandon Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Causes the state machine to transition to the abandoned state.
Overloads
Abandon(TimeSpan) |
Causes the state machine to transition to the abandoned state with the specified timeout value. |
Abandon(Exception, TimeSpan) |
Causes the state machine to transition to the abandoned state with the specified exception and timeout value. |
Remarks
Abandon may stop responding when there is an ambient transaction and Complete is called and afterwards the transaction is rolled back. If Abandon is called prior to the transaction rollback completing, a race condition will exist, causing the call to Abandon to stop responding. This can be illustrated by the following pseudo-code example
using (TransactionScope ts = new TransactionScope())
{
try
{
rc.Complete();
...
}
Catch (Exception)
{
rc.Abandon()
}
}
This is not the recommended pattern for working with ReceiveContext. Instead the try/catch block should be placed outside of the transaction scope.
Abandon(TimeSpan)
Causes the state machine to transition to the abandoned state with the specified timeout value.
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)
Parameters
- timeout
- TimeSpan
The timeout for the abandon operation to complete.
Applies to
Abandon(Exception, TimeSpan)
Causes the state machine to transition to the abandoned state with the specified exception and timeout value.
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)
Parameters
- exception
- Exception
The exception that causes the abandon operation.
- timeout
- TimeSpan
The timeout for the abandon operation to complete.