Подтвердить что ты не робот

Разница между ожиданиями и асинхронной и параллельной библиотекой задач

В чем разница между параллельной библиотекой задач и ожиданиями и асинхронизацией. Какова была необходимость в ожидании и асинхронном режиме? Я вижу, что TPL является частью С# 4.0 и ждет /async является частью С# 5.0, но кроме того, что является основным отличием. В чем была необходимость ввести это новое ключевое слово?

4b9b3361

Ответ 1

Параллельная библиотека задач была разработана для параллельного программирования - когда у вас есть много работы и вы хотите разделить эту работу на несколько потоков, чтобы вы могли использовать всех процессорных ядер. TPL лучше всего подходит для работы с ЦП.

Async и ждут для асинхронного программирования - когда у вас есть операция (или многие операции), которая будет завершена в будущем, и вы хотите делать другие вещи в тем временем. Async лучше всего подходит для работы с привязкой к I/O.

Существует некоторое перекрытие. Например, вы можете рассматривать параллельное вычисление как асинхронную операцию, так что она не связывает ваш поток пользовательского интерфейса. Кроме того, как TPL, так и async/await используют тип Task, хотя они используют его по-разному.