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

Сообщение Re[9]: Как оптимизировать выполнения 10000 параллельных зада от 06.08.2016 5:55

Изменено 06.08.2016 6:10 Serginio1

Здравствуйте, LWhisper, Вы писали:

LW>Здравствуйте, Serginio1, Вы писали:


S>> А чем поток внутри занимается? Какова нагрузка на процессор?

S>> Если он, что то ожидает то твой то нужно заменить все синхронные операции на асинхронные.
S>> Thread.Sleep заменяется на await Task.Delay().
LW>В лучшем случае — по стабильному каналу общаются с SQL-сервером.
LW>В худшем — по крайне не стабильному с сервером на другом конце планеты, постоянно устанавливая соединение заново, когда жирафы прерывают луч лазерного интернета.

Для запросов используй асинхронные методы например Async Query & Save (EF6 onwards)
Здравствуйте, LWhisper, Вы писали:

LW>Здравствуйте, Serginio1, Вы писали:


S>> А чем поток внутри занимается? Какова нагрузка на процессор?

S>> Если он, что то ожидает то твой то нужно заменить все синхронные операции на асинхронные.
S>> Thread.Sleep заменяется на await Task.Delay().
LW>В лучшем случае — по стабильному каналу общаются с SQL-сервером.
LW>В худшем — по крайне не стабильному с сервером на другом конце планеты, постоянно устанавливая соединение заново, когда жирафы прерывают луч лазерного интернета.

Для запросов используй асинхронные методы например Async Query & Save (EF6 onwards)

Основное отличие задач от потоков заключается в сохранении состояния. Для каждого потока выделяется память под стек плюс данные под переменные потока и значения регистров. В задаче это данные объекта (Замыкание). У них свой планировщик.
Только потоки жрут значительно больше ресурсов. Правда при асинхронном программировании нужно использовать асинхронные методы