Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ TransactionScope() [6/14]

System.Transactions.TransactionScope.TransactionScope ( TransactionScopeOption scopeOption,
TimeSpan scopeTimeout,
TransactionScopeAsyncFlowOption asyncFlowOption )
inline

Definition at line 100 of file TransactionScope.cs.

101 {
102 TransactionsEtwProvider log = TransactionsEtwProvider.Log;
103 if (log.IsEnabled())
104 {
105 log.MethodEnter(TraceSourceType.TraceSourceBase, this, ".ctor");
106 }
107 ValidateScopeTimeout("scopeTimeout", scopeTimeout);
108 TimeSpan timeout = TransactionManager.ValidateTimeout(scopeTimeout);
109 ValidateAndSetAsyncFlowOption(asyncFlowOption);
110 if (NeedToCreateTransaction(scopeOption))
111 {
112 _committableTransaction = new CommittableTransaction(timeout);
114 }
115 if (null != _expectedCurrent && null == _committableTransaction && TimeSpan.Zero != scopeTimeout)
116 {
117 _scopeTimer = new Timer(TimerCallback, this, scopeTimeout, TimeSpan.Zero);
118 }
119 if (null == _expectedCurrent)
120 {
121 if (log.IsEnabled())
122 {
123 log.TransactionScopeCreated(TransactionTraceIdentifier.Empty, TransactionScopeResult.NoTransaction);
124 }
125 }
126 else
127 {
128 TransactionScopeResult transactionScopeResult = ((null == _committableTransaction) ? TransactionScopeResult.UsingExistingCurrent : TransactionScopeResult.CreatedTransaction);
129 if (log.IsEnabled())
130 {
131 log.TransactionScopeCreated(_expectedCurrent.TransactionTraceId, transactionScopeResult);
132 }
133 }
134 PushScope();
135 if (log.IsEnabled())
136 {
137 log.MethodExit(TraceSourceType.TraceSourceBase, this, ".ctor");
138 }
139 }
static void TimerCallback(object state)
void ValidateScopeTimeout(string paramName, TimeSpan scopeTimeout)
void ValidateAndSetAsyncFlowOption(TransactionScopeAsyncFlowOption asyncFlowOption)
bool NeedToCreateTransaction(TransactionScopeOption scopeOption)
CommittableTransaction _committableTransaction
TransactionTraceIdentifier TransactionTraceId

References System.Transactions.TransactionScope._committableTransaction, System.Transactions.TransactionScope._expectedCurrent, System.Transactions.TransactionScope._scopeTimer, System.Transactions.Transaction.Clone(), System.Transactions.TransactionTraceIdentifier.Empty, System.Diagnostics.Tracing.EventSource.IsEnabled(), System.Transactions.TransactionsEtwProvider.Log, System.Transactions.TransactionsEtwProvider.MethodEnter(), System.Transactions.TransactionsEtwProvider.MethodExit(), System.Transactions.TransactionScope.NeedToCreateTransaction(), System.Transactions.TransactionScope.PushScope(), System.timeout, System.Transactions.TransactionScope.TimerCallback(), System.Transactions.TransactionsEtwProvider.TransactionScopeCreated(), System.Transactions.Transaction.TransactionTraceId, System.Transactions.TransactionScope.ValidateAndSetAsyncFlowOption(), System.Transactions.TransactionScope.ValidateScopeTimeout(), System.Transactions.TransactionManager.ValidateTimeout(), and System.TimeSpan.Zero.