diff Implab/Diagnostics/LogicalOperationScope.cs @ 253:34df34841225 v3 v3.0.1-beta

Implab.Diagnostics drafts
author cin
date Mon, 12 Feb 2018 17:03:37 +0300
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Implab/Diagnostics/LogicalOperationScope.cs	Mon Feb 12 17:03:37 2018 +0300
@@ -0,0 +1,21 @@
+using System;
+using System.Diagnostics;
+
+namespace Implab.Diagnostics {
+    public class LogicalOperationScope : IDisposable {
+        readonly TraceSource m_source;
+
+        readonly LogicalOperation m_operation;
+
+        internal LogicalOperationScope(TraceSource source, LogicalOperation operation) {
+            m_source = source;
+            m_operation = operation;
+        }
+
+        public void Dispose() {
+            m_operation.OperationStopwatch.Stop();
+            Trace.CorrelationManager.StopLogicalOperation();
+            m_source.TraceData(TraceEventType.Information, TraceEventCodes.StopLogicalOperation, m_operation);
+        }
+    }
+}
\ No newline at end of file