Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Межпроцессорное взаимодействие и многопоточность в .NET (реферат).docx
Скачиваний:
30
Добавлен:
28.06.2014
Размер:
139.35 Кб
Скачать

WaitHandle – составляющие Поля

WaitTimeout

Показывает, что время ожидания операции WaitAny истекло до того, как какой-либо из ожидающих дескрипторов получил сигнал. Данное поле является константой.

Свойства

  • Handle

Получает или задает собственный дескриптор операционной системы.

Методы

  • WaitAll

Ожидает получения сигнала всеми элементами заданного массива.

  • WaitAny

Ожидает получения сигнала каким – либо элементом заданного массива.

  • WaitOne

Блокирует текущий поток до получения сигнала текущим объектом 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 – составляющие Свойства

  • Handle(унаследовано отWaitHandle)

Получает или задает собственный дескриптор операционной системы.

Методы

  • Close(унаследовано отWaitHandle)

При переопределении в производном классе освобождает все ресурсы, занимаемые текущим объектом WaitHandle.

  • ReleaseMutex

Освобождает объект Mutex один раз.

  • WaitOne(унаследовано отWaitHandle)

Блокирует текущий поток до получения сигнала текущим объектом WaitHandle(сигнал о том что разделяемый ресурс свободен)

Определение:

public virtual IntPtr Handle { get; set; }

public virtual void Close ()

public void ReleaseMutex ()

public virtual bool WaitOne ()