Управляемая поточностьManaged Threading

При разработке для компьютеров как с одним, так и с несколькими процессорами, необходимо, чтобы приложение обеспечивало наиболее эффективное взаимодействие с пользователем, даже если в приложении выполняются другие задачи.Whether you are developing for computers with one processor or several, you want your application to provide the most responsive interaction with the user, even if the application is currently doing other work. Использование нескольких потоков выполнения — это один из способов обеспечить в приложении возможность реагирования на действия пользователя при одновременном использовании процессора для выполнения задач между появлением или даже во время появления событий пользователя.Using multiple threads of execution is one of the most powerful ways to keep your application responsive to the user and at the same time make use of the processor in between or even during user events. Хотя в этом разделе приведены основные сведения о потоковом выполнении, здесь также рассматриваются принципы работы управляемых потоков и их использование.While this section introduces the basic concepts of threading, it focuses on managed threading concepts and using managed threading.

Примечание

Начиная с .NET Framework 4, многопоточное программирование значительно упростилось благодаря классам System.Threading.Tasks.Parallel и System.Threading.Tasks.Task, Parallel LINQ (PLINQ), новым классам параллельных коллекций из пространства имен System.Collections.Concurrent и новой модели программирования, которая вместо потоков использует концепцию задач.Starting with the .NET Framework 4, multithreaded programming is greatly simplified with the System.Threading.Tasks.Parallel and System.Threading.Tasks.Task classes, Parallel LINQ (PLINQ), new concurrent collection classes in the System.Collections.Concurrent namespace, and a new programming model that is based on the concept of tasks rather than threads. Дополнительные сведения см. в разделе Параллельное программирование.For more information, see Parallel Programming.

В этом разделеIn This Section

Основы управляемых потоковManaged Threading Basics
Обзор управляемых потоков и случаев использования нескольких потоков.Provides an overview of managed threading and discusses when to use multiple threads.

Использование потоков и работа с потокамиUsing Threads and Threading
Описание способов создания, запуска, приостановки, возобновления и отмены потоков.Explains how to create, start, pause, resume, and abort threads.

Рекомендации по работе с потокамиManaged Threading Best Practices
Обсуждение уровней синхронизации, способов предотвращения взаимоблокировки и состояния гонки и других проблем, связанных с многопоточностью.Discusses levels of synchronization, how to avoid deadlocks and race conditions, and other threading issues.

Объекты и функциональные возможности работы с потокамиThreading Objects and Features
Описание управляемых классов, которые можно использовать для синхронизации действий потоков и данных объектов, доступных в разных потоках, а также обзор пула потоков.Describes the managed classes you can use to synchronize the activities of threads and the data of objects accessed on different threads, and provides an overview of thread pool threads.

СправочникиReference

System.Threading
Содержит классы для использования и синхронизации управляемых потоков.Contains classes for using and synchronizing managed threads.

System.Collections.Concurrent
Содержит классы коллекций, которые могут безопасно использоваться несколькими потоками.Contains collection classes that are safe for use with multiple threads.

System.Threading.Tasks
Содержит классы для создания и планирования задач параллельной обработки.Contains classes for creating and scheduling concurrent processing tasks.

Домены приложенийApplication Domains
Общие сведения о доменах приложений и их использовании в Common Language Infrastructure.Provides an overview of application domains and their use by the Common Language Infrastructure.

Asynchronous File I/OAsynchronous File I/O
Описывает преимущества и основные операции асинхронного ввода и вывода.Describes the performance advantages and basic operation of asynchronous I/O.

Task-based Asynchronous Pattern (TAP) (Асинхронный шаблон, основанный на задачах (TAP))Task-based Asynchronous Pattern (TAP)
Предоставляет общие рекомендации по асинхронному программированию в .NET.Provides an overview of the recommended pattern for asynchronous programming in .NET.

Асинхронный вызов синхронных методовCalling Synchronous Methods Asynchronously
Описание способов вызова методов в потоках пула потоков с помощью встроенных функций делегатов.Explains how to call methods on thread pool threads using built-in features of delegates.

Параллельное программированиеParallel Programming
Описание библиотек параллельного программирования, упрощающих использование нескольких потоков в приложениях.Describes the parallel programming libraries, which simplify the use of multiple threads in applications.

Parallel LINQ (PLINQ)Parallel LINQ (PLINQ)
Описание системы для выполнения запросов в параллельном режиме, позволяющей воспользоваться преимуществами нескольких процессоров.Describes a system for running queries in parallel, to take advantage of multiple processors.