Partilhar via


Encerrando uma transação automática chamando SetComplete

Para utilizar as transações automáticas de forma eficaz, cada componente transacional deve indicar que concluiu o seu trabalho. Quando uma instância de objeto conclui a sua tarefa com êxito, deve definir os seus sinalizadores consistentes e concluídos como True chamando o método IObjectContext::SetComplete, que é exposto por meio da interface IObjectContext e do objeto ObjectContext.

A maneira mais eficiente de concluir uma transação automática é desativar explicitamente o objeto raiz usando o métodoSetComplete. Ao indicar explicitamente que um objeto raiz concluiu seu trabalho, você pode reduzir o comprimento da transação.

O exemplo do Visual Basic a seguir mostra como indicar que um objeto transacional concluiu seu trabalho com êxito:

Sub MyObjMethod1()
  Dim ObjCtx As ObjectContext
  Dim InteriorObj1 As Cinterior  ' Cinterior is a user-defined object.

  Set ObjCtx = GetObjectContext()
  Set InteriorObj1 = CreateObject ("MyDll.Cinterior")
  InteriorObj1.Method1
  ' If the call completed successfully, then...
  objCtx.SetComplete
End Sub

Sinalizadores consistentes e concluídos

Gerenciando transações automáticas em COM+