CommittableTransaction.EndCommit(IAsyncResult) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Завершает попытку зафиксировать транзакцию асинхронно.
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)
Параметры
- asyncResultar
- IAsyncResult
Объект IAsyncResult, связанный с асинхронной фиксацией.
Исключения
Вызывается метод BeginCommit(AsyncCallback, Object), и выполняется первоначальный откат транзакции.
Комментарии
Этот метод следует вызвать в делегате обратного вызова, указанном в качестве параметра BeginCommit для метода, после завершения любой работы по очистке, связанной с асинхронным обязательством. Этот метод можно также вызвать рано, не ожидая делегата. Если к тому времени, когда вы вызываете этот метод, транзакция не завершена, этот метод ожидает завершения.
Внимание!
Свойство CompletedSynchronously , возвращаемое asyncResult
всегда false
, даже если операция завершена синхронно.
Commit и EndCommit блокируются до завершения первой фазы обработки транзакций. Первый этап заканчивается после того, как все диспетчеры ресурсов и зачисления в транзакцию проголосовали за результат транзакции, и TransactionManager явно решил зафиксировать или прервать транзакцию. Второй этап обработки всегда асинхронен. Таким образом, нет никакой гарантии, что данные, зафиксированные из данной транзакции, будут немедленно доступны после этого, если не используется другая транзакция для просмотра этих данных.