В async
и await
ключевых словах не сделают ваше приложение более отзывчивым на своем собственном. Они просто делают вызов и обработку методов, которые возвращают Task
объекты, более удобными. Для того, чтобы создавать async
/ await
фактически использовать фоновые потоки, вам нужно сочетать с такими вещами, как:
Task.Start()
- Запускает заданное задание, используя TaskScheduler
.
- PLINQ - выполняет серию операций параллельно, возвращает задачу.
TaskCompletionSource
- Пользовательский способ обработки асинхронных задач. Одно из мест, где я использовал это, было для обработки событий, поступающих от элемента WebBrowser
управления.
- Другие
async
методы, такие как многие функции в Win 8 API.
Другими словами, async
/ await
является расширением асинхронного шаблона на основе задач . Вы можете найти большое количество информации, включая множество примеров, здесь .
Это BackgroundWorker
компонент WinForms, который создает 1 фоновый поток, используя асинхронный шаблон на основе событий , и вы можете заполнить работу, выполненную в этом фоновом потоке, своим собственным кодом в DoWork
обработчике событий. В общем, Microsoft больше не рекомендует использовать этот шаблон (см. Нижнюю часть страницы здесь ), хотя, если вы уже знакомы с ним, это может быть простой вариант.
Другой вариант, не упомянутый, - это Реактивные расширения для .NET . Это еще одна отличная основа для добавления отзывчивости в ваши приложения.