Поделиться через


SemaphoreSlim.Wait Метод

Определение

Блокирует текущий поток, пока он не сможет ввести SemaphoreSlim.

Перегрузки

Wait(TimeSpan, CancellationToken)

Блокирует текущий поток, пока он не сможет ввести SemaphoreSlim, используя TimeSpan, указывающий время ожидания при наблюдении за CancellationToken.

Wait(Int32, CancellationToken)

Блокирует текущий поток, пока он не сможет ввести SemaphoreSlim, используя 32-разрядное целое число со знаком, указывающее время ожидания при наблюдении за CancellationToken.

Wait(TimeSpan)

Блокирует текущий поток, пока он не сможет ввести SemaphoreSlim, используя TimeSpan, чтобы указать время ожидания.

Wait(Int32)

Блокирует текущий поток, пока он не сможет ввести SemaphoreSlim, используя 32-разрядное целое число со знаком, указывающее время ожидания.

Wait()

Блокирует текущий поток, пока он не сможет ввести SemaphoreSlim.

Wait(CancellationToken)

Блокирует текущий поток, пока он не сможет ввести SemaphoreSlim, наблюдая за CancellationToken.

Wait(TimeSpan, CancellationToken)

Исходный код:
SemaphoreSlim.cs
Исходный код:
SemaphoreSlim.cs
Исходный код:
SemaphoreSlim.cs

Блокирует текущий поток, пока он не сможет ввести SemaphoreSlim, используя TimeSpan, указывающий время ожидания при наблюдении за CancellationToken.

public:
 bool Wait(TimeSpan timeout, System::Threading::CancellationToken cancellationToken);
public bool Wait (TimeSpan timeout, System.Threading.CancellationToken cancellationToken);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public bool Wait (TimeSpan timeout, System.Threading.CancellationToken cancellationToken);
member this.Wait : TimeSpan * System.Threading.CancellationToken -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Wait : TimeSpan * System.Threading.CancellationToken -> bool
Public Function Wait (timeout As TimeSpan, cancellationToken As CancellationToken) As Boolean

Параметры

timeout
TimeSpan

TimeSpan, представляющее количество миллисекунд для ожидания, TimeSpan, представляющего -1 миллисекунд, чтобы ждать неограниченное время, или TimeSpan, представляющее 0 миллисекунд для проверки дескриптора ожидания и возврата немедленно.

cancellationToken
CancellationToken

CancellationToken для наблюдения.

Возвращаемое значение

true, если текущий поток успешно вошел в SemaphoreSlim; в противном случае false.

Атрибуты

Исключения

cancellationToken было отменено.

timeout — отрицательное число, отличное от -1, которое представляет бесконечное время ожидания.

-или-.

timeout больше Int32.MaxValue.

Экземпляр semaphoreSlim удален.

-или-

CancellationTokenSource, создавший cancellationToken, уже удален.

Комментарии

Если для времени ожидания задано значение -1 миллисекундах, метод ожидает неограниченное время ожидания.

Если время ожидания равно нулю миллисекундам, метод не блокируется. Он проверяет состояние дескриптора ожидания и возвращается немедленно.

Если поток или задача могут ввести семафор, он уменьшает свойство CurrentCount по одному.

Если cancellationToken отменены, или если поток или задача заблокированы при вызове Wait(TimeSpan, CancellationToken) и интервал времени ожидания, указанный millisecondsTimeout истекает:

  • Поток или задача не вводит семафор.
  • Свойство CurrentCount не уменьшается.

При отмене cancellationToken метод вызывает исключение OperationCanceledException.

См. также раздел

Применяется к

Wait(Int32, CancellationToken)

Исходный код:
SemaphoreSlim.cs
Исходный код:
SemaphoreSlim.cs
Исходный код:
SemaphoreSlim.cs

Блокирует текущий поток, пока он не сможет ввести SemaphoreSlim, используя 32-разрядное целое число со знаком, указывающее время ожидания при наблюдении за CancellationToken.

public:
 bool Wait(int millisecondsTimeout, System::Threading::CancellationToken cancellationToken);
public bool Wait (int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public bool Wait (int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);
member this.Wait : int * System.Threading.CancellationToken -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Wait : int * System.Threading.CancellationToken -> bool
Public Function Wait (millisecondsTimeout As Integer, cancellationToken As CancellationToken) As Boolean

Параметры

millisecondsTimeout
Int32

Количество миллисекунд для ожидания, Infinite (-1) для ожидания неопределенное время или ноль для проверки состояния дескриптора ожидания и возврата немедленно.

cancellationToken
CancellationToken

CancellationToken для наблюдения.

Возвращаемое значение

true, если текущий поток успешно вошел в SemaphoreSlim; в противном случае false.

Атрибуты

Исключения

cancellationToken было отменено.

millisecondsTimeout — отрицательное число, отличное от -1, которое представляет бесконечное время ожидания.

-или-

millisecondsTimeout больше Int32.MaxValue.

Экземпляр SemaphoreSlim был удален или был удален CancellationTokenSource, созданный cancellationToken.

Комментарии

Если для времени ожидания задано значение -1 миллисекундах, метод ожидает неограниченное время ожидания.

Если время ожидания равно нулю миллисекундам, метод не блокируется. Он проверяет состояние дескриптора ожидания и возвращается немедленно.

Если поток или задача могут ввести семафор, он уменьшает свойство CurrentCount по одному.

Если cancellationToken отменены, или если поток или задача заблокированы при вызове Wait(Int32, CancellationToken) и интервал времени ожидания, указанный millisecondsTimeout истекает:

  • Поток или задача не вводит семафор.
  • Свойство CurrentCount не уменьшается.

При отмене cancellationToken метод вызывает исключение OperationCanceledException.

См. также раздел

Применяется к

Wait(TimeSpan)

Исходный код:
SemaphoreSlim.cs
Исходный код:
SemaphoreSlim.cs
Исходный код:
SemaphoreSlim.cs

Блокирует текущий поток, пока он не сможет ввести SemaphoreSlim, используя TimeSpan, чтобы указать время ожидания.

public:
 bool Wait(TimeSpan timeout);
public bool Wait (TimeSpan timeout);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public bool Wait (TimeSpan timeout);
member this.Wait : TimeSpan -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Wait : TimeSpan -> bool
Public Function Wait (timeout As TimeSpan) As Boolean

Параметры

timeout
TimeSpan

TimeSpan, представляющее количество миллисекунд для ожидания, TimeSpan, представляющего -1 миллисекунд, чтобы ждать неограниченное время, или TimeSpan, представляющее 0 миллисекунд для проверки дескриптора ожидания и возврата немедленно.

Возвращаемое значение

true, если текущий поток успешно вошел в SemaphoreSlim; в противном случае false.

Атрибуты

Исключения

timeout — отрицательное число, отличное от -1, которое представляет бесконечное время ожидания.

-или-

timeout больше Int32.MaxValue.

Экземпляр semaphoreSlim удален.

Комментарии

Если для времени ожидания задано значение -1 миллисекундах, метод ожидает неограниченное время ожидания.

Если время ожидания равно нулю миллисекундам, метод не блокируется. Он проверяет состояние дескриптора ожидания и возвращается немедленно.

Если поток или задача могут ввести семафор, он уменьшает свойство CurrentCount по одному.

Если поток или задача блокируются при вызове Wait(TimeSpan) и интервал ожидания, указанный millisecondsTimeout истекает:

  • Поток или задача не вводит семафор.
  • Свойство CurrentCount не уменьшается.

См. также раздел

Применяется к

Wait(Int32)

Исходный код:
SemaphoreSlim.cs
Исходный код:
SemaphoreSlim.cs
Исходный код:
SemaphoreSlim.cs

Блокирует текущий поток, пока он не сможет ввести SemaphoreSlim, используя 32-разрядное целое число со знаком, указывающее время ожидания.

public:
 bool Wait(int millisecondsTimeout);
public bool Wait (int millisecondsTimeout);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public bool Wait (int millisecondsTimeout);
member this.Wait : int -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Wait : int -> bool
Public Function Wait (millisecondsTimeout As Integer) As Boolean

Параметры

millisecondsTimeout
Int32

Количество миллисекунд для ожидания, Infinite (-1) для ожидания неопределенное время или ноль для проверки состояния дескриптора ожидания и возврата немедленно.

Возвращаемое значение

true, если текущий поток успешно вошел в SemaphoreSlim; в противном случае false.

Атрибуты

Исключения

millisecondsTimeout является отрицательным числом, отличным от -1, которое представляет бесконечное время ожидания или время ожидания больше, чем Int32.MaxValue.

Комментарии

Если для времени ожидания задано значение -1 миллисекундах, метод ожидает неограниченное время ожидания.

Если время ожидания равно нулю миллисекундам, метод не блокируется. Он проверяет состояние дескриптора ожидания и возвращается немедленно.

Если поток или задача могут ввести семафор, он уменьшает свойство CurrentCount по одному.

Если поток или задача блокируются при вызове Wait(Int32) и интервал ожидания, указанный millisecondsTimeout истекает:

  • Поток или задача не вводит семафор.
  • Свойство CurrentCount не уменьшается.

См. также раздел

Применяется к

Wait()

Исходный код:
SemaphoreSlim.cs
Исходный код:
SemaphoreSlim.cs
Исходный код:
SemaphoreSlim.cs

Блокирует текущий поток, пока он не сможет ввести SemaphoreSlim.

public:
 void Wait();
public void Wait ();
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public void Wait ();
member this.Wait : unit -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Wait : unit -> unit
Public Sub Wait ()
Атрибуты

Исключения

Текущий экземпляр уже удален.

Комментарии

Если поток или задача могут ввести семафор, он уменьшает свойство CurrentCount по одному.

См. также раздел

Применяется к

Wait(CancellationToken)

Исходный код:
SemaphoreSlim.cs
Исходный код:
SemaphoreSlim.cs
Исходный код:
SemaphoreSlim.cs

Блокирует текущий поток, пока он не сможет ввести SemaphoreSlim, наблюдая за CancellationToken.

public:
 void Wait(System::Threading::CancellationToken cancellationToken);
public void Wait (System.Threading.CancellationToken cancellationToken);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public void Wait (System.Threading.CancellationToken cancellationToken);
member this.Wait : System.Threading.CancellationToken -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
member this.Wait : System.Threading.CancellationToken -> unit
Public Sub Wait (cancellationToken As CancellationToken)

Параметры

cancellationToken
CancellationToken

Маркер CancellationToken для наблюдения.

Атрибуты

Исключения

cancellationToken было отменено.

Текущий экземпляр уже удален.

-или-

CancellationTokenSource, создавший cancellationToken, уже удален.

Комментарии

Если поток или задача могут ввести семафор, он уменьшает свойство CurrentCount по одному.

Если cancellationToken отменено, поток или задача не вводит семафор, а свойство CurrentCount не уменьшается. Вместо этого метод создает исключение OperationCanceledException.

См. также раздел

Применяется к