Beispiel #1
0
 public static ThreadLocalDeepProfiler Get()
 {
     lock (DeepProfilersLock)
     {
         int managedThreadId = Thread.CurrentThread.ManagedThreadId;
         if (!deepProfilers.TryGetValue(managedThreadId, out ThreadLocalDeepProfiler value))
         {
             value = new ThreadLocalDeepProfiler();
             deepProfilers.Add(managedThreadId, value);
             return(value);
         }
         return(value);
     }
 }
        public static ThreadLocalDeepProfiler Get()
        {
            object deepProfilersLock = DeepProfiler.DeepProfilersLock;

            Monitor.Enter(deepProfilersLock);
            try
            {
                int managedThreadId = Thread.CurrentThread.ManagedThreadId;
                ThreadLocalDeepProfiler threadLocalDeepProfiler = default(ThreadLocalDeepProfiler);
                if (!DeepProfiler.deepProfilers.TryGetValue(managedThreadId, out threadLocalDeepProfiler))
                {
                    threadLocalDeepProfiler = new ThreadLocalDeepProfiler();
                    DeepProfiler.deepProfilers.Add(managedThreadId, threadLocalDeepProfiler);
                    return(threadLocalDeepProfiler);
                }
                return(threadLocalDeepProfiler);
            }
            finally
            {
                Monitor.Exit(deepProfilersLock);
            }
        }
Beispiel #3
0
        public static ThreadLocalDeepProfiler Get()
        {
            object deepProfilersLock = DeepProfiler.DeepProfilersLock;
            ThreadLocalDeepProfiler result;

            lock (deepProfilersLock)
            {
                int managedThreadId = Thread.CurrentThread.ManagedThreadId;
                ThreadLocalDeepProfiler threadLocalDeepProfiler;
                if (!DeepProfiler.deepProfilers.TryGetValue(managedThreadId, out threadLocalDeepProfiler))
                {
                    threadLocalDeepProfiler = new ThreadLocalDeepProfiler();
                    DeepProfiler.deepProfilers.Add(managedThreadId, threadLocalDeepProfiler);
                    result = threadLocalDeepProfiler;
                }
                else
                {
                    result = threadLocalDeepProfiler;
                }
            }
            return(result);
        }