Transaction.TransactionCompleted イベント
アセンブリ: System.Transactions (system.transactions.dll 内)

Dim instance As Transaction Dim handler As TransactionCompletedEventHandler AddHandler instance.TransactionCompleted, handler
public: event TransactionCompletedEventHandler^ TransactionCompleted { void add (TransactionCompletedEventHandler^ value); void remove (TransactionCompletedEventHandler^ value); }


揮発性の参加リストの代わりにこのイベントを登録して、トランザクションの結果情報を取得できます。TransactionCompletedEventHandler デリゲートに渡されるパラメータは、Transaction のインスタンスです。その後、特定のインスタンスの TransactionInformation プロパティを照会し、Status プロパティにトランザクションのステータス (Committed 値または Aborted 値) が格納されている TransactionInformation のインスタンスを取得します。

アプリケーションが TransactionCompleted イベントをサブスクライブすることによって、トランザクションの結果を取得する方法を次の例に示します。
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 Public 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
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 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からTransaction.TransactionCompleted イベントを検索する場合は、下記のリンクをクリックしてください。

- Transaction.TransactionCompleted イベントのページへのリンク