Share via

CommittableTransaction.EndCommit(IAsyncResult) Method


Ends an attempt to commit the transaction asynchronously.

 void EndCommit(IAsyncResult ^ asyncResult);
public void EndCommit (IAsyncResult asyncResult);
member this.EndCommit : IAsyncResult -> unit
Public Sub EndCommit (asyncResult As IAsyncResult)



The IAsyncResult object associated with the asynchronous commitment.


BeginCommit(AsyncCallback, Object) is called and the transaction rolls back for the first time.


You should call this method in the callback delegate specified as a parameter to the BeginCommit method, when you have finished any cleanup work associated with the asynchronous commitment. You can also call this method early without waiting for the delegate. If, by the time you call this method, the transaction has not completed, this method waits for its completion.


The CompletedSynchronously property returned by asyncResult is always false, even if the operation completed synchronously.

Commit and EndCommit block until the first phase of transaction processing is complete. The first phase ends after all resource managers and enlistments in the transaction have voted on the transaction outcome and the TransactionManager has durably decided to commit or abort the transaction. The second phase of processing is always asynchronous. Therefore, there is no guarantee that data just committed from within a given transaction will be immediately available afterwards when not using another transaction to view this data.

Applies to