Прочитать на английском

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


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

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

Приложение может использовать пул потоков для асинхронной работы в параллельных потоках. Пул потоков управляет набором потоков и использует очередь для назначения рабочих элементов потокам по мере их доступности. Пул потоков аналогичен асинхронным шаблонам программирования, доступным в среда выполнения 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.
Создание периодического рабочего элемента Узнайте, как создать рабочий элемент, повторяющийся периодически.
Отправка рабочего элемента в пул потоков Узнайте, как работать в отдельном потоке, отправив рабочий элемент в пул потоков.
Отправка рабочего элемента с помощью таймера Узнайте, как создать рабочий элемент, который выполняется после истечения таймера.