Exemplo n.º 1
0
 private async Task Callback(object state)
 {
     foreach (var profiler in _gcProfilers)
     {
         await profiler.Invoke(ApplicationGCProfilingContext.GetSnapshot());
     }
     foreach (var profiler in _threadingprofilers)
     {
         await profiler.Invoke(ApplicationThreadingProfilingContext.GetSnapshot());
     }
 }
Exemplo n.º 2
0
        public static ApplicationThreadingProfilingContext GetSnapshot()
        {
            ThreadPool.GetAvailableThreads(out var availableWorkerThreads, out var availableCompletionPortThreads);
            ThreadPool.GetMaxThreads(out var maxWorkerThreads, out var maxCompletionPortThreads);
            ThreadPool.GetMinThreads(out var minWorkerThreads, out var minCompletionPortThreads);
            var context = new ApplicationThreadingProfilingContext
            {
                AvailableCompletionPortThreads = availableCompletionPortThreads,
                AvailableWorkerThreads         = availableWorkerThreads,
                MaxCompletionPortThreads       = maxCompletionPortThreads,
                MaxWorkerThreads         = maxWorkerThreads,
                MinCompletionPortThreads = minCompletionPortThreads,
                MinWorkerThreads         = minWorkerThreads,
            };

            return(context);
        }