- •Оглавление
- •Класс Thread. Общая информация.
- •Thread – составляющие
- •Свойства
- •1) В следующем примере кода показаны простейшие функциональные возможности работы с потоками.
- •2)Пример изменения и использования свойств Priotiry, Name, CurrentThread
- •3) Создание потоков в фоновом режиме. Использование свойства IsBackground.
- •4) Ключевое слово lock
- •Interrupt(), Sleep(), SpinWait(), Join()
- •Класс Process Общая информация.
- •Process – составляющие Свойства
- •Примеры:
- •Класс WaitHandle Общая информация.
- •WaitHandle – составляющие Поля
- •Свойства
- •Класс Mutex Общая информация.
- •Mutex – составляющие Свойства
- •Примеры
- •Класс AutoResetEvent Общая информация.
- •AutoResetEvent – составляющие Методы
- •Примеры
- •Класс ManualResetEvent Общая информация.
- •ManualResetEvent – составляющие Методы
- •Примеры
- •Класс Monitor Общая информация.
- •Monitor – составляющие Методы
- •Класс Semaphore
- •Список литературы
WaitHandle – составляющие Поля
WaitTimeout |
Показывает, что время ожидания операции WaitAny истекло до того, как какой-либо из ожидающих дескрипторов получил сигнал. Данное поле является константой. |
Свойства
|
Получает или задает собственный дескриптор операционной системы. |
Методы
|
Ожидает получения сигнала всеми элементами заданного массива. |
|
Ожидает получения сигнала каким – либо элементом заданного массива. |
|
Блокирует текущий поток до получения сигнала текущим объектом WaitHandle. |
Определение:
public const int WaitTimeout
public virtual IntPtr Handle { get; set; }
public static bool WaitAll ( WaitHandle[] waitHandles)
public static int WaitAny (WaitHandle[] waitHandles)
public virtual bool WaitOne ()
Примеры
Соответствующие примеры о данном классе можно найти в разделах Mutex, AutoResetEvent, ManualResetEvent
Класс Mutex Общая информация.
Описание:
Примитив синхронизации, который также может использоваться в межпроцессорной синхронизации.
Когда двум или более потокам нужно произвести доступ к разделяемому ресурсу одновременно, системе необходим механизм синхронизации для того, чтобы гарантировать использование ресурса только одним потоком. Класс Mutex — это примитив синхронизации, который предоставляет эксклюзивный доступ к разделяемому ресурсу только для одного потока. Если поток получает Mutex, второй поток, желающий получить этот Mutex, приостанавливается до тех пор, пока первый поток не освободит данный Mutex.
Можно использовать метод WaitHandle.WaitOne для запроса на владение объектом Mutex. Поток, владеющий объектом Mutex, может запрашивать его в повторяющихся вызовах Wait без блокировки выполнения. Однако поток должен вызвать метод ReleaseMutex соответственное количество раз для того, чтобы прекратить владеть объектом Mutex. Если поток завершается нормально во время владения объектом Mutex, состояние объекта Mutex задается сигнальным, и следующий ожидающий поток становится владельцем семафора. Если нет потоков, владеющих объектом Mutex, его состояние является сигнальным.
Иерархия:
System.Object System.MarshalByRefObject System.Threading.WaitHandle System.Threading.Mutex
Определение:
[C#]
public sealed class Mutex : WaitHandle
Потокобезопасность:
Этот тип можно использовать в многопоточных операциях.
Mutex – составляющие Свойства
|
Получает или задает собственный дескриптор операционной системы. |
Методы
|
При переопределении в производном классе освобождает все ресурсы, занимаемые текущим объектом WaitHandle. |
|
Освобождает объект Mutex один раз. |
|
Блокирует текущий поток до получения сигнала текущим объектом WaitHandle(сигнал о том что разделяемый ресурс свободен) |
Определение:
public virtual IntPtr Handle { get; set; }
public virtual void Close ()
public void ReleaseMutex ()
public virtual bool WaitOne ()