İngilizce dilinde oku

Aracılığıyla paylaş


Transaction.TransactionCompleted Olay

Tanım

İşlemin tamamlandığını gösterir.

C#
public event System.Transactions.TransactionCompletedEventHandler? TransactionCompleted;
C#
public event System.Transactions.TransactionCompletedEventHandler TransactionCompleted;

Olay Türü

Özel durumlar

Bu olayı atılmış bir işleme abone olma girişimi.

Örnekler

Aşağıdaki örnekte, bir uygulamanın olaya abone olarak işlemin sonucunu nasıl elde ettiği gösterilmektedir TransactionCompleted .

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);
}

Açıklamalar

İşlemlerin sonuç bilgilerini almak için geçici bir liste kullanmak yerine bu olaya kaydolabilirsiniz. Temsilciye TransactionCompletedEventHandler geçirilen parametre bir Transaction örnektir. Ardından, özelliği veya değerine sahip Committed bir işlemin durumunu içeren bir örneğini TransactionInformationStatus almak için belirli örneğin özelliğini sorgulayabilirsinizTransactionInformation.Aborted

Dikkat Bu olaya kaydolmak, bağlı olduğu işlemin performansını olumsuz etkiler.

Şunlara uygulanır

Ürün Sürümler
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1