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