Evaluar y enviar comentarios
This page is specific to
Microsoft Visual Studio 2008/.NET Framework 3.5

Other versions are also available for the following:
Biblioteca de clases de .NET Framework
Transaction..::.TransactionCompleted (Evento)

Indica que se finaliza la transacción.

Espacio de nombres:  System.Transactions
Ensamblado:  System.Transactions (en System.Transactions.dll)

Visual Basic (Declaración)
Public Event TransactionCompleted As TransactionCompletedEventHandler
Visual Basic (Uso)
Dim instance As Transaction
Dim handler As TransactionCompletedEventHandler

AddHandler instance.TransactionCompleted, handler
C#
public event TransactionCompletedEventHandler TransactionCompleted
Visual C++
public:
 event TransactionCompletedEventHandler^ TransactionCompleted {
    void add (TransactionCompletedEventHandler^ value);
    void remove (TransactionCompletedEventHandler^ value);
}
J#
/** @event */
public void add_TransactionCompleted (TransactionCompletedEventHandler value)
/** @event */
public void remove_TransactionCompleted (TransactionCompletedEventHandler value)
JScript
JScript no admite eventos.
ExcepciónCondición
ObjectDisposedException

Se intenta suscribir este evento en una transacción que se ha eliminado.

Puede registrarse para este evento en lugar de utilizar una inscripción volátil para obtener información del resultado para las transacciones. El parámetro que se pasa al delegado TransactionCompletedEventHandler es una instancia de Transaction. Puede realizar una consulta de la propiedad TransactionInformation de la instancia concreta para obtener una instancia de TransactionInformation, cuya propiedad Status contiene el estado de una transacción con el valor Committed o Aborted.

Precaución  la inscripción en este evento afecta negativamente al rendimiento de la transacción a la que está asociada.

En el ejemplo siguiente se muestra cómo una aplicación puede obtener el resultado de una transacción suscribiéndose al evento TransactionCompleted.

Visual Basic
Public Shared Sub Main()
    Try
        Using scope As TransactionScope = New TransactionScope()

            'Register for the transaction completed event for the current transaction
            AddHandler Transaction.Current.TransactionCompleted, AddressOf Current_TransactionCompleted

            'Perform transactional work here.

            'Call complete on the TransactionScope based on console input
            Dim c As ConsoleKeyInfo
            While (True)

                Console.Write("Complete the transaction scope? [Y|N] ")
                c = Console.ReadKey()
                Console.WriteLine()
                If (c.KeyChar = "Y") Or (c.KeyChar = "y") Then
                    scope.Complete()
                    Exit While
                ElseIf ((c.KeyChar = "N") Or (c.KeyChar = "n")) Then
                    Exit While
                End If

            End While

        End Using
    Catch ex As TransactionException
        Console.WriteLine(ex)
    Catch
        Console.WriteLine("Cannot complete transaction")
        Throw
    End Try
End Sub

'Transaction completed event handler
Private Shared Sub Current_TransactionCompleted(ByVal sender As Object, ByVal e As TransactionEventArgs)
    Console.WriteLine("A transaction has completed:")
    Console.WriteLine("ID:             {0}", e.Transaction.TransactionInformation.LocalIdentifier)
    Console.WriteLine("Distributed ID: {0}", e.Transaction.TransactionInformation.DistributedIdentifier)
    Console.WriteLine("Status:         {0}", e.Transaction.TransactionInformation.Status)
    Console.WriteLine("IsolationLevel: {0}", e.Transaction.IsolationLevel)
End Sub


C#
        static void Main(string[] args)
        {
            try
            {
                //Create the transaction scope
                using (TransactionScope scope = new TransactionScope())
                {
                    //Register for the transaction completed event for the current transaction
                    Transaction.Current.TransactionCompleted += new TransactionCompletedEventHandler(Current_TransactionCompleted);

                    //Call complete on the TransactionScope based on console input
                    ConsoleKeyInfo c;
                    while (true)
                    {
                        Console.Write("Complete the transaction scope? [Y|N] ");
                        c = Console.ReadKey();
                        Console.WriteLine();

                        if ((c.KeyChar == 'Y') || (c.KeyChar == 'y'))
                        {
                            scope.Complete();
                            break;
                        }
                        else if ((c.KeyChar == 'N') || (c.KeyChar == 'n'))
                        {
                            break;
                        }
                    }

                }

            }
            catch (System.Transactions.TransactionException ex)
            {
                Console.WriteLine(ex);
            }
            catch
            {
                Console.WriteLine("Cannot complete transaction");
                throw;
            }
        }

        //Transaction completed event handler
        static void Current_TransactionCompleted(object sender, TransactionEventArgs e)
        {
            Console.WriteLine("A transaction has completed:");
            Console.WriteLine("ID:             {0}", e.Transaction.TransactionInformation.LocalIdentifier);
            Console.WriteLine("Distributed ID: {0}", e.Transaction.TransactionInformation.DistributedIdentifier);
            Console.WriteLine("Status:         {0}", e.Transaction.TransactionInformation.Status);
            Console.WriteLine("IsolationLevel: {0}", e.Transaction.IsolationLevel);
        }

Visual Basic
Public Shared Sub Main()
    Try
        Using scope As TransactionScope = New TransactionScope()

            'Register for the transaction completed event for the current transaction
            AddHandler Transaction.Current.TransactionCompleted, AddressOf Current_TransactionCompleted

            'Perform transactional work here.

            'Call complete on the TransactionScope based on console input
            Dim c As ConsoleKeyInfo
            While (True)

                Console.Write("Complete the transaction scope? [Y|N] ")
                c = Console.ReadKey()
                Console.WriteLine()
                If (c.KeyChar = "Y") Or (c.KeyChar = "y") Then
                    scope.Complete()
                    Exit While
                ElseIf ((c.KeyChar = "N") Or (c.KeyChar = "n")) Then
                    Exit While
                End If

            End While

        End Using
    Catch ex As TransactionException
        Console.WriteLine(ex)
    Catch
        Console.WriteLine("Cannot complete transaction")
        Throw
    End Try
End Sub

'Transaction completed event handler
Private Shared Sub Current_TransactionCompleted(ByVal sender As Object, ByVal e As TransactionEventArgs)
    Console.WriteLine("A transaction has completed:")
    Console.WriteLine("ID:             {0}", e.Transaction.TransactionInformation.LocalIdentifier)
    Console.WriteLine("Distributed ID: {0}", e.Transaction.TransactionInformation.DistributedIdentifier)
    Console.WriteLine("Status:         {0}", e.Transaction.TransactionInformation.Status)
    Console.WriteLine("IsolationLevel: {0}", e.Transaction.IsolationLevel)
End Sub


C#
        static void Main(string[] args)
        {
            try
            {
                //Create the transaction scope
                using (TransactionScope scope = new TransactionScope())
                {
                    //Register for the transaction completed event for the current transaction
                    Transaction.Current.TransactionCompleted += new TransactionCompletedEventHandler(Current_TransactionCompleted);

                    //Call complete on the TransactionScope based on console input
                    ConsoleKeyInfo c;
                    while (true)
                    {
                        Console.Write("Complete the transaction scope? [Y|N] ");
                        c = Console.ReadKey();
                        Console.WriteLine();

                        if ((c.KeyChar == 'Y') || (c.KeyChar == 'y'))
                        {
                            scope.Complete();
                            break;
                        }
                        else if ((c.KeyChar == 'N') || (c.KeyChar == 'n'))
                        {
                            break;
                        }
                    }

                }

            }
            catch (System.Transactions.TransactionException ex)
            {
                Console.WriteLine(ex);
            }
            catch
            {
                Console.WriteLine("Cannot complete transaction");
                throw;
            }
        }

        //Transaction completed event handler
        static void Current_TransactionCompleted(object sender, TransactionEventArgs e)
        {
            Console.WriteLine("A transaction has completed:");
            Console.WriteLine("ID:             {0}", e.Transaction.TransactionInformation.LocalIdentifier);
            Console.WriteLine("Distributed ID: {0}", e.Transaction.TransactionInformation.DistributedIdentifier);
            Console.WriteLine("Status:         {0}", e.Transaction.TransactionInformation.Status);
            Console.WriteLine("IsolationLevel: {0}", e.Transaction.IsolationLevel);
        }

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2008 Microsoft Corporation. Reservados todos los derechos. Términos de uso  |  Marcas Registradas  |  Privacidad
Page view tracker