Поделиться через


Потоковое и асинхронное программирование

Потоки и асинхронное программирование позволяют приложению выполнять асинхронную работу в параллельных потоках.

Приложение может использовать пул потоков для асинхронной работы в параллельных потоках. Пул потоков управляет набором потоков и использует очередь для назначения рабочих элементов потокам по мере их доступности. Пул потоков аналогичен асинхронным шаблонам программирования, доступным в среде выполнения Windows, так как его можно использовать для выполнения расширенной работы без блокировки пользовательского интерфейса, но пул потоков предлагает больше управления, чем асинхронные шаблоны программирования, и его можно использовать для параллельного выполнения нескольких рабочих элементов. Пул потоков можно использовать для:

  • Отправка рабочих элементов, управление приоритетом и отмена рабочих элементов.

  • Планирование рабочих элементов с помощью таймеров и периодических таймеров.

  • Отложите ресурсы для критически важных рабочих элементов.

  • Рабочие элементы запускаются в ответ на именованные события и семафоры.

Пул потоков более эффективен в управлении потоками, поскольку он уменьшает накладные расходы на создание и уничтожение потоков. Это означает, что он имеет доступ к оптимизации потоков в нескольких ядрах ЦП, и может сбалансировать ресурсы потоков между приложениями и при выполнении фоновых задач. Использование встроенного пула потоков удобно, так как основное внимание уделяется написанию кода, который выполняет задачу вместо механики управления потоками.

Тема Описание
асинхронное программирование (приложения UWP) В этом разделе описывается асинхронное программирование на универсальной платформе Windows (UWP) и его представление в C#, расширения компонентов Microsoft Visual Basic .NET, Visual C++ (C++/CX) и JavaScript.
Асинхронное программирование в C++/CX (приложения UWP) В этой статье описывается рекомендуемый способ использования асинхронных методов в C++/CX с помощью класса task, определенного в пространстве имен concurrency в ppltasks.h.
Рекомендации по использованию пула потоков В этом разделе описаны лучшие практики по работе с пулом потоков.
вызов асинхронных API в C# или Visual Basic Универсальная платформа Windows (UWP) включает множество асинхронных API, чтобы гарантировать, что ваше приложение остается адаптивным при выполнении работы, которое может занять длительное время. В этом разделе описывается использование асинхронных методов из UWP в C# или Microsoft Visual Basic.
Создание периодического рабочего элемента Узнайте, как создать рабочий элемент, повторяющийся периодически.
Отправить рабочий элемент в пул потоков Узнайте, как выполнять работу в отдельном потоке, отправляя рабочий элемент в пул потоков.
Использовать таймер для отправки рабочего элемента Узнайте, как создать рабочий элемент, который выполняется после истечения таймера.