Ответ 1
Параллельная библиотека задач была разработана для параллельного программирования - когда у вас есть много работы и вы хотите разделить эту работу на несколько потоков, чтобы вы могли использовать всех процессорных ядер. TPL лучше всего подходит для работы с ЦП.
Async и ждут для асинхронного программирования - когда у вас есть операция (или многие операции), которая будет завершена в будущем, и вы хотите делать другие вещи в тем временем. Async лучше всего подходит для работы с привязкой к I/O.
Существует некоторое перекрытие. Например, вы можете рассматривать параллельное вычисление как асинхронную операцию, так что она не связывает ваш поток пользовательского интерфейса. Кроме того, как TPL, так и async/await используют тип Task
, хотя они используют его по-разному.