Информация об изменениях

Сообщение Task.Run - кол-во одновременных по умолчанию от 05.03.2020 23:36

Изменено 05.03.2020 23:38 Shmj

Task.Run - кол-во одновременных по умолчанию
Чего й то не понял:

    class Program
    {
        static async Task Main(string[] args)
        {
            for (int i = 0; i < 100; i++)
            {
                var copy = i;

                _ = Task.Run(() =>
                {
                    Console.WriteLine("Start " + copy);

                    while (!HasUpdates())
                    {
                        Thread.Sleep(5000);
                    }

                    Console.WriteLine("End " + copy);
                });
            }

            Console.ReadLine();
            Console.WriteLine("Hello World!");
        }

        public static bool HasUpdates()
        {
            var random = new Random();
            return random.Next(1, 5) == 3;
        }
    }


Одновременно запускается не так много задач — как я понял, по числу ядер процессора или типа того (на моем старичке — только 4 штуки). Где это установлено? В TaskScheduler.Current.MaximumConcurrencyLevel — офердофигища.
Task.Run - кол-во одновременных по умолчанию
Чего й то не понял:

    class Program
    {
        static async Task Main(string[] args)
        {
            for (int i = 0; i < 100; i++)
            {
                var copy = i;

                _ = Task.Run(() =>
                {
                    Console.WriteLine("Start " + copy);
                    Thread.Sleep(5000);
                    Console.WriteLine("End " + copy);
                });
            }

            Console.ReadLine();
            Console.WriteLine("Hello World!");
        }
    }


Одновременно запускается не так много задач — как я понял, по числу ядер процессора или типа того (на моем старичке — только 4 штуки). Где это установлено? В TaskScheduler.Current.MaximumConcurrencyLevel — офердофигища.