⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 program.cs

📁 C#高级编程第6版随书源代码 值得下载
💻 CS
字号:
using System;
using System.Threading;
using System.Transactions;

namespace Wrox.ProCSharp.Transactions
{
   class Program
   {
      static void Main()
      {
         try
         {
            using (TransactionScope scope = new TransactionScope())
            {
               Transaction.Current.TransactionCompleted += TransactionCompleted;
               Utilities.DisplayTransactionInformation("Main thread TX", Transaction.Current.TransactionInformation);

//               new Thread(ThreadMethod).Start(null);
               new Thread(ThreadMethod).Start(Transaction.Current.DependentClone(DependentCloneOption.BlockCommitUntilComplete));
               scope.Complete();
            }
         }
         catch (TransactionAbortedException ex)
         {
            Console.WriteLine("Main - Transaction was aborted, {0}", ex.Message);

         }
      }

      static void TransactionCompleted(object sender, TransactionEventArgs e)
      {
         Utilities.DisplayTransactionInformation("TX completed", e.Transaction.TransactionInformation);

      }


      static void ThreadMethod(object dependentTx)
      {
         DependentTransaction dTx = dependentTx as DependentTransaction;

         try
         {
            Transaction.Current = dTx;

            using (TransactionScope scope = new TransactionScope())
            {
               Transaction.Current.TransactionCompleted += TransactionCompleted;

               Utilities.DisplayTransactionInformation("Thread TX", Transaction.Current.TransactionInformation);
               scope.Complete();
            }
         }
         catch (TransactionAbortedException ex)
         {
             Console.WriteLine("ThreadMethod - Transaction was aborted, {0}", ex.Message);
         }
         finally
         {
            if (dTx != null)
            {
               dTx.Complete();
            }

         }
      }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -