Поработав какое-то время, заметил, что, даже если вы создадите 1000 задач, они не запустятся сразу. Таким образом, в основном, даже если я запускаю 1000 задач, 100 из них выполняются и 900 из них ожидают запуска.
Итак, мой вопрос: как они начинают? Как .net определяет, когда запускать задачу или запускать ее? Какой методологии я могу следовать, чтобы начать их немедленно? Я хочу, чтобы определенное количество задач/потоков выполнялось все время.
Если я использую потоки вместо задач, они начнут выполняться немедленно или .net запустит их, как ему заблагорассудится?
Вопрос может быть не очень ясен, поэтому, пожалуйста, попросите меня уточнить.
В основном я порождаю 1000 (сохраняя это число порожденным. Когда 1 задача завершила запуск другой задачи) задач, но только 125 из них Running
и 875 из них WaitingToRun
:)
вот как я запускаю задачу
Task.Factory.StartNew(() =>
{
startCheckingProxies();
});
С# WPF 4.5