Condividi tramite


CommittableTransaction.EndCommit(IAsyncResult) Metodo

Definizione

Termina un tentativo di eseguire il commit della transazione in modo asincrono.

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

Parametri

asyncResultar
IAsyncResult

Oggetto IAsyncResult associato al commit asincrono.

Eccezioni

Viene chiamato BeginCommit(AsyncCallback, Object) e viene eseguito il rollback della transazione per la prima volta.

Commenti

È necessario chiamare questo metodo nel delegato di callback specificato come parametro per il BeginCommit metodo , al termine di qualsiasi operazione di pulizia associata all'impegno asincrono. È anche possibile chiamare questo metodo in anticipo senza attendere il delegato. Se, al momento della chiamata a questo metodo, la transazione non è stata completata, questo metodo attende il completamento.

Attenzione

La CompletedSynchronously proprietà restituita da asyncResult è sempre false, anche se l'operazione è stata completata in modo sincrono.

Commit e EndCommit bloccano fino al completamento della prima fase dell'elaborazione delle transazioni. La prima fase termina dopo che tutti i gestori di risorse e gli inserimenti nella transazione hanno votato sul risultato della transazione e ha deciso duramente di eseguire il commit o l'interruzione TransactionManager della transazione. La seconda fase di elaborazione è sempre asincrona. Pertanto, non esiste alcuna garanzia che i dati appena sottoposti a commit dall'interno di una determinata transazione saranno immediatamente disponibili quando non si usa un'altra transazione per visualizzare questi dati.

Si applica a