示例#1
0
        public override void Stop(string segmentName, bool assertStarted = true, bool stopChildren = false)
        {
            base.Stop(segmentName, assertStarted, stopChildren);

            int threadsTotal = 0;

            if (JoinThreadsAfterSegmentsEnd != null && JoinThreadsAfterSegmentsEnd.TryGetValue(segmentName, out threadsTotal))
            {
                WaitStop(segmentName, threadsTotal);
            }
        }
示例#2
0
        public JobProfiler JoinThreadsAroundSegment(string name, int threadCount)
        {
            if (JoinThreadsBeforeSegmentsStart == null)
            {
                JoinThreadsBeforeSegmentsStart = new Dictionary <string, int>(StringComparer.Ordinal);
            }

            JoinThreadsBeforeSegmentsStart.Add(name, threadCount);

            if (JoinThreadsAfterSegmentsEnd == null)
            {
                JoinThreadsAfterSegmentsEnd = new Dictionary <string, int>(StringComparer.Ordinal);
            }

            JoinThreadsAfterSegmentsEnd.Add(name, threadCount);
            return(this);
        }