Exemplo n.º 1
0
        public static void ConfigureThreadPool(this IWebHost webHost)
        {
            var loggerFactory = webHost.Services.GetRequiredService <ILoggerFactory>();
            var logger        = loggerFactory.CreateLogger(webHost.GetType());

            logger.LogInformation("Processor count = {processorCount}", Environment.ProcessorCount);

            ThreadPool.GetMinThreads(out var minWorkerThreads, out var minCompletionPortThreads);
            ThreadPool.GetMaxThreads(out var maxWorkerThreads, out var maxCompletionPortThreads);
            ThreadPool.SetMinThreads(minWorkerThreads, maxCompletionPortThreads);

            ThreadPool.GetMinThreads(out minWorkerThreads, out minCompletionPortThreads);

            logger.LogInformation(
                "Threadpool info: MinWorkerThreads = {minWorkerThreads}, MaxWorkerThreads = {maxWorkerThreads}, " +
                "MinCompletionPortThreads = {minCompletionPortThreads}, MaxCompletionPortThreads = {maxCompletionPortThreads}",
                minWorkerThreads,
                maxWorkerThreads,
                minCompletionPortThreads,
                maxCompletionPortThreads);
        }