Exemplo n.º 1
0
        public void StopTrace()
        {
            int            threadId   = Thread.CurrentThread.ManagedThreadId;
            MethodStatItem methodStat = _result.ThreadsStat[threadId].LastStackMethods.Pop();

            methodStat.StopTrace();
        }
Exemplo n.º 2
0
        public void StartTrace()
        {
            IsResultReady = false;
            int threadId = Thread.CurrentThread.ManagedThreadId;

            ThreadStatItem threadStat = _result.ThreadsStat.GetOrAdd(threadId,
                                                                     _ => new ThreadStatItem(threadId));

            StackTrace     stackTrace     = new StackTrace();
            MethodBase     method         = stackTrace.GetFrame(1).GetMethod();
            MethodStatItem methodStatItem =
                new MethodStatItem(method.Name, method.ReflectedType?.Name);

            methodStatItem.StartTrace();

            if (threadStat.LastStackMethods.Count != 0)
            {
                threadStat.LastStackMethods.Peek().AddChildMethod(methodStatItem);
            }
            else
            {
                threadStat.Methods.Add(methodStatItem);
            }

            threadStat.LastStackMethods.Push(methodStatItem);
        }