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