/// <summary>
 /// leaves the current scope with the provided scope id
 /// </summary>
 public void Dispose()
 {
     m_sw.Stop();
     TraceManager.WriteLine(TraceManager.Engine,
                            "Stopping (overall: {0})", m_sw.Elapsed);
     Trace.CorrelationManager.StopLogicalOperation();
 }
            /// <summary>
            /// enters a new scope with the provided scope id
            /// </summary>
            /// <param name="id">The scope id</param>
            internal LogicalOperation(object id)
            {
                m_id = id;

                Trace.CorrelationManager.StartLogicalOperation(m_id);
                m_sw = new Stopwatch();
                m_sw.Start();
                TraceManager.WriteLine("Starting");
            }