.NET 4 включает новое пространство имён System.Threading.Tasks, которое содержит классы, абстрагирующие функциональность потоков. Используйте ThreadPool в фоне. Задача представляет собой работу единицы, которую нужно выполнить. Работа этого блока может выполняться в отдельном потоке или выполнять задачу синхронно, что требует ожидания основного потока настройки. Использование задач даёт не только уровень абстракции, но и даёт большой контроль над основными потоками. Задачи предлагают большую гибкость в планировании необходимых работ. Например, вы можете определить непрерывную задачу — какую работу следует выполнять после завершения задачи. Это может стать решающим фактором между успешной и неуспешной задачей. Кроме того, задачи могут быть организованы по иерархии. Например, родительская задача может создать новую дочернюю задачу. Это создаёт зависимость, так что если вы отмените родительскую задачу, её дочерняя задача тоже будет отменена.
Сегодня популярно использовать методы выполнения задач, и это высокая производительность, и я не знаю, где именно производительность задач.
Я сам тестировал Task and Thread и считаю, что Task работает очень медленно, что сильно влияет на производительность, а тестовый код таков:
Мы повторяем метод 1000 раз, затем метод блокируется на 100 миллисекунд, и результат теста выглядит следующим образом:
Результат:
Выполнение потока занимает 188 миллисекунд
Выполнение задачи занимает 14 671 миллисекунду
Разница в скорости между ними составляет 78 раз!!
Задача очень медленная, не понимаю, почему это происходит, что-то не так с моим тестовым кодом или что-то ещё? Надеюсь, вы сможете объяснить, почему так происходит...
|