view Implab/Diagnostics/LogicalOperationScope.cs @ 262:f1696cdc3d7a v3 v3.0.8

Added IInitializable.Initialize() overload Added IRunnable.Start(), IRunnable.Start() overloads Fixed cancellation of the current operation when Stop() is called More tests
author cin
date Mon, 16 Apr 2018 02:12:39 +0300
parents 34df34841225
children
line wrap: on
line source

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