Lock.TryEnter Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| Имя | Описание |
|---|---|
| TryEnter() |
Пытается ввести блокировку без ожидания. |
| TryEnter(Int32) |
Пытается ввести блокировку, ожидая, если это необходимо для указанного числа миллисекунда, пока блокировка не будет введена. |
| TryEnter(TimeSpan) |
Пытается ввести блокировку, ожидая, если это необходимо, пока блокировка не будет введена или не истекает указанное время ожидания. |
TryEnter()
- Исходный код:
- Lock.cs
- Исходный код:
- Lock.cs
- Исходный код:
- Lock.cs
Пытается ввести блокировку без ожидания.
public:
bool TryEnter();
public bool TryEnter();
member this.TryEnter : unit -> bool
Public Function TryEnter () As Boolean
Возвращаемое значение
Исключения
Блокировка достигла предела повторяющихся записей текущим потоком. Ограничение определяется реализацией и должно быть достаточно высоким, чтобы оно не было достигнуто в обычных ситуациях.
Комментарии
Когда метод возвращается true, текущий поток является единственным потоком, который содержит блокировку. Если блокировка не может быть введена немедленно, метод возвращается false без ожидания блокировки. Если блокировка уже хранится текущим потоком, блокировка снова вводится. Чтобы полностью выйти из блокировки и разрешить другим потокам войти в блокировку, текущий поток должен выйти из блокировки столько раз, сколько он вошел в блокировку.
Дополнительные сведения см. в примечаниях.Lock
Применяется к
TryEnter(Int32)
- Исходный код:
- Lock.cs
- Исходный код:
- Lock.cs
- Исходный код:
- Lock.cs
Пытается ввести блокировку, ожидая, если это необходимо для указанного числа миллисекунда, пока блокировка не будет введена.
public:
bool TryEnter(int millisecondsTimeout);
public bool TryEnter(int millisecondsTimeout);
member this.TryEnter : int -> bool
Public Function TryEnter (millisecondsTimeout As Integer) As Boolean
Параметры
- millisecondsTimeout
- Int32
Число миллисекунда, которое нужно ждать, пока блокировка не будет введена. Укажите timeout.Infinite (-1), чтобы ждать неограниченное время или 0 не ждать.
Возвращаемое значение
Исключения
millisecondsTimeout меньше -1.
Блокировка достигла предела повторяющихся записей текущим потоком. Ограничение определяется реализацией и должно быть достаточно высоким, чтобы оно не было достигнуто в обычных ситуациях.
Комментарии
Когда метод возвращается true, текущий поток является единственным потоком, который содержит блокировку. Если блокировка не может быть введена немедленно, метод ожидает ввода блокировки или до истечения времени ожидания, указанного millisecondsTimeout параметром. Если истекает время ожидания перед вводом блокировки, метод возвращается false. Если блокировка уже хранится текущим потоком, блокировка снова вводится. Чтобы полностью выйти из блокировки и разрешить другим потокам войти в блокировку, текущий поток должен выйти из блокировки столько раз, сколько он вошел в блокировку.
Дополнительные сведения см. в примечаниях.Lock
Применяется к
TryEnter(TimeSpan)
- Исходный код:
- Lock.cs
- Исходный код:
- Lock.cs
- Исходный код:
- Lock.cs
Пытается ввести блокировку, ожидая, если это необходимо, пока блокировка не будет введена или не истекает указанное время ожидания.
public:
bool TryEnter(TimeSpan timeout);
public bool TryEnter(TimeSpan timeout);
member this.TryEnter : TimeSpan -> bool
Public Function TryEnter (timeout As TimeSpan) As Boolean
Параметры
- timeout
- TimeSpan
Значение TimeSpan , представляющее количество миллисекундах, ожидающих ввода блокировки. Укажите значение, представляющее миллисекунда timeout.Infinite (-1) для ожидания на неопределенный срок или значение, представляющее 0 миллисекунда, не ожидающее.
Возвращаемое значение
Исключения
timeoutПосле преобразования в целочисленное миллисекунда представляет значение, которое меньше -1 миллисекунда или больше, чем в миллисекундах Int32.MaxValue миллисекундах.
Блокировка достигла предела повторяющихся записей текущим потоком. Ограничение определяется реализацией и должно быть достаточно высоким, чтобы оно не было достигнуто в обычных ситуациях.
Комментарии
Когда метод возвращается true, текущий поток является единственным потоком, который содержит блокировку. Если блокировка не может быть введена немедленно, метод ожидает ввода блокировки или до истечения указанного timeout срока действия. Если истекает время ожидания перед вводом блокировки, метод возвращается false. Если блокировка уже хранится текущим потоком, блокировка снова вводится. Чтобы полностью выйти из блокировки и разрешить другим потокам войти в блокировку, текущий поток должен выйти из блокировки столько раз, сколько он вошел в блокировку.
Дополнительные сведения см. в примечаниях.Lock