Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсач.docx
Скачиваний:
17
Добавлен:
25.03.2018
Размер:
327.58 Кб
Скачать

Семафор

Семафори - це інструмент управління потоками. Семафори використовують в тих випадках, коли необхідно обмежити число потоків, що одночасно виконують певну ділянку коду. Буває, що вводять подібні обмеження на доступ до ресурсу, який теоретично може обслуговувати кілька потоків одночасно, але бажано число таких "клієнтів" обмежити.

Semaphore (Int32, Int32) - Ініціалізує новий екземпляр класу Semaphore, що задає початкове кількість входів і максимальну кількість одночасних входів.

Semaphore (Int32, Int32, String) - Ініціалізує новий екземпляр класу Semaphore, що задає початкове кількість входів і максимальну кількість одночасних входів, а також при необхідності ім'я об'єкта системного семафора.

Semaphore (Int32, Int32, String, Boolean) - Ініціалізує новий екземпляр класу Semaphore, що задає початкове кількість входів і максимальну кількість одночасних входів, а також при необхідності задає ім'я об'єкта системного семафора і змінну, яка одержує значення, яке вказує, чи був створений новий системний семафор.

Semaphore (Int32, Int32, String, Boolean, SemaphoreSecurity) - Ініціалізує новий екземпляр класу Semaphore, що задає початкове кількість входів і максимальну кількість одночасних входів, а також при необхідності задає ім'я об'єкта системного семафора, змінну, яка отримує значення, яке вказує, чи був створений новий системний семафор, і управління безпечним доступом для системного семафора.

Методи класу Semaphore:

  • Close () - Звільняє всі ресурси, утримувані поточним об'єктом WaitHandle. (Успадковується від WaitHandle.)

  • CreateObjRef (Type) - Створює об'єкт, що містить всі необхідні відомості для створення проксі-сервера, що використовується для обміну даними з віддаленим об'єктом.

  • Dispose () - Звільняє всі ресурси, використовувані поточним екземпляром класу WaitHandle.

  • Equals (Object) - Визначає, чи рівний заданий об'єкт поточного об'єкту. (Успадковується від Object.)

  • GetAccessControl () - Повертає настройки управління доступом для іменованого системного семафора.

  • GetHashCode () - Служить хеш-функцією за замовчуванням.

  • GetLifetimeService () - Витягує поточний об'єкт служби часу існування, який керує політикою часу існування даного екземпляра.

  • GetType () - Повертає об'єкт Type для поточного екземпляра.

  • InitializeLifetimeService () - Отримує об'єкт служби часу існування для управління політикою часу існування для цього примірника.

  • OpenExisting (String) - Відкриває вказаний іменований семафор, якщо він вже існує.

  • OpenExisting (String, SemaphoreRights) - Відкриває вказаний іменований семафор, якщо він вже існує, з необхідним безпечним доступом.

  • Release () - Виходить з семафора і повертає передостаннє значення лічильника.

  • Release (Int32) - Виходить з семафора вказане число раз і повертає останнє значення лічильника.

  • SetAccessControl (SemaphoreSecurity) - Задає безпеку управління доступом для іменованого системного семафора.

  • ToString () - Повертає строкове представлення поточного об'єкта.

  • TryOpenExisting (String, Semaphore) - Відкриває вказаний іменований семафор, якщо він вже існує, і повертає значення, яке вказує, чи успішно виконана операція.

  • TryOpenExisting (String, SemaphoreRights, Semaphore) - Відкриває заданий іменований семафор, якщо він вже існує, з необхідними правами доступу, і повертає значення, яке вказує, чи успішно виконана операція.

  • WaitOne () - Блокує поточний потік до отримання сигналу об'єктом WaitHandle.

  • WaitOne (Int32) - Блокує поточний потік до отримання поточним дескриптором WaitHandle сигналу, використовуючи 32-розрядний ціле

  • WaitOne (Int32, Boolean) - Блокує поточний потік до отримання сигналу поточним об'єктом WaitHandle, використовуючи 32-розрядний ціле число зі знаком для завдання періоду часу і вказуючи, чи слід вийти з домену синхронізації до початку очікування.

  • WaitOne (TimeSpan) - Блокує поточний потік до отримання сигналу поточним екземпляром, використовуючи значення типу TimeSpan для вказівки інтервалу часу.

  • WaitOne (TimeSpan, Boolean) - Блокує поточний потік до отримання сигналу поточним екземпляром, використовуючи значення типу TimeSpan для завдання інтервалу часу і вказуючи, чи слід вийти з домену синхронізації до початку очікування.