Создание потоков (Руководство по программированию на C#)

Обновлен: Ноябрь 2007

Потоки позволяют программе C# выполнять параллельную обработку, за счет чего появляется возможность одновременного выполнения нескольких операций. Например, потоки можно использовать для наблюдения ввода данных пользователем, выполнения фоновых задач и обработки одновременных потоков ввода. Пространство имен System.Threading содержит классы и интерфейсы, поддерживающие многопоточное программирование, и позволяет без труда выполнять такие задачи как создание и запуск новых потоков, синхронизация нескольких потоков, приостановка потоков и их отмена.

Чтобы добавить поток в код C#, создайте функцию, которая будет выполняться вне главного потока и укажите в ней новый объект Thread. В следующем примере кода создается новый поток в приложении C#.

System.Threading.Thread newThread;
newThread = new System.Threading.Thread(anObject.AMethod);

В следующем примере кода запускается созданный поток в приложении C#.

newThread.Start();

Многопоточность позволяет решить проблемы оперативности и выполнения нескольких задач, но в то же время означает общее использование ресурсов и вызывает проблемы синхронизации из-за прерывания и возобновления потоков без предупреждения в соответствии с центральным потоком, который управляет механизмом. Дополнительные сведения см. в разделе Синхронизация потоков (Руководство по программированию на C#). Общие сведения см. в разделе Использование потоков и работа с потоками.

Общие сведения

Потоки имеют следующие свойства.

  • Потоки позволяют программе C# выполнять параллельную обработку.

  • Пространство имен .NET Framework System.Threading упрощает использование потоков.

  • Потоки используют одни и те же ресурсы приложения. Дополнительные сведения см. в разделе Использование потоков и работа с потоками.

Разделы по теме

Дополнительные сведения см. в следующих разделах.

Спецификация языка C#

Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:

  • 3.10. Порядок выполнения.

  • 8.12 Оператор lock

  • 10.5.3 Зависимые поля

  • 10.8.1 События-поля

См. также

Задачи

Пример Monitor Synchronization Technology

Пример Wait Synchronization Technology

Основные понятия

Руководство по программированию в C#

Объекты Mutex

Мониторы

Блокируемые операции

AutoResetEvent

Ссылки

Thread

Mutex

Делегаты (руководство по программированию на C#)

Другие ресурсы

Практическое руководство. Синхронизация доступа к общим ресурсам в многопоточной среде с использованием Visual C# .NET