В async
і await
ключових словах не зроблять ваше додаток більш чуйним на своєму власному. Вони просто роблять виклик та поводження з методами, які повертають Task
об'єкти, більш зручними. Щоб зробити async
/ await
фактично використовувати фонові нитки, вам потрібно буде поєднати з використанням таких речей, як:
Task.Start()
- Починає задане завдання за допомогою TaskScheduler
.
- PLINQ - Виконує паралельно ряд операцій, повертає Завдання.
TaskCompletionSource
- Спеціальний спосіб обробляти завдання асинхронізації. Я використовував це місце для обробки подій, що надходять з WebBrowser
контролю.
- Інші
async
методи, наприклад, багато функцій в API Win 8.
Іншими словами, async
/ await
є розширенням асинхронного шаблону на основі завдань . Ви можете знайти безліч інформації, в тому числі багатьох зразків, тут .
Компонент BackgroundWorker
WinForms, який створює 1 фоновий потік за допомогою асинхронного шаблону на основі подій , і ви можете заповнити роботу, виконану над цим потоком фону, власним кодом у DoWork
обробці подій. Загалом, Microsoft більше не рекомендує використовувати цей шаблон (див. Внизу сторінки тут ), хоча якщо ви вже знайомі з ним, це все ще може бути простим варіантом.
Інший варіант, який не згадується, - це Реактивні розширення для .NET . Це ще одна чудова рамка для додавання чутливості до ваших додатків.