Lock.TryEnter Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
TryEnter() |
Próbuje wprowadzić blokadę bez oczekiwania. |
TryEnter(Int32) |
Próbuje wprowadzić blokadę, czekając w razie potrzeby dla określonej liczby milisekund do momentu wprowadzenia blokady. |
TryEnter(TimeSpan) |
Próbuje wprowadzić blokadę, czekając w razie potrzeby do momentu wprowadzenia blokady lub do momentu wygaśnięcia określonego limitu czasu. |
TryEnter()
- Źródło:
- Lock.cs
Próbuje wprowadzić blokadę bez oczekiwania.
public:
bool TryEnter();
public bool TryEnter ();
member this.TryEnter : unit -> bool
Public Function TryEnter () As Boolean
Zwraca
true
jeśli blokada została wprowadzona przez bieżący wątek; w przeciwnym razie , false
.
Wyjątki
Blokada osiągnęła limit powtarzających się wpisów przez bieżący wątek. Limit jest definiowany przez implementację i ma być wystarczająco wysoki, aby nie został osiągnięty w normalnych sytuacjach.
Uwagi
Gdy metoda zwraca true
wartość , bieżący wątek jest jedynym wątkiem, który przechowuje blokadę. Jeśli nie można natychmiast wprowadzić blokady, metoda zwraca false
wartość bez oczekiwania na blokadę. Jeśli blokada jest już przechowywana przez bieżący wątek, blokada zostanie ponownie wprowadzona. Aby w pełni zamknąć blokadę i zezwolić innym wątkom na wejście do blokady, bieżący wątek powinien zamknąć blokadę tyle razy, ile wszedł do blokady.
Aby uzyskać więcej informacji, zobacz uwagi dotyczące Lockprogramu .
Dotyczy
TryEnter(Int32)
- Źródło:
- Lock.cs
Próbuje wprowadzić blokadę, czekając w razie potrzeby dla określonej liczby milisekund do momentu wprowadzenia blokady.
public:
bool TryEnter(int millisecondsTimeout);
public bool TryEnter (int millisecondsTimeout);
member this.TryEnter : int -> bool
Public Function TryEnter (millisecondsTimeout As Integer) As Boolean
Parametry
- millisecondsTimeout
- Int32
Liczba milisekund oczekiwania na wejście blokady. Określ limit czasu.Nieskończony (-1
) do oczekiwania na czas nieokreślony lub 0
nie czekać.
Zwraca
true
jeśli blokada została wprowadzona przez bieżący wątek; w przeciwnym razie , false
.
Wyjątki
millisecondsTimeout
wartość jest mniejsza niż -1
.
Blokada osiągnęła limit powtarzających się wpisów przez bieżący wątek. Limit jest definiowany przez implementację i ma być wystarczająco wysoki, aby nie został osiągnięty w normalnych sytuacjach.
Uwagi
Gdy metoda zwraca true
wartość , bieżący wątek jest jedynym wątkiem, który przechowuje blokadę. Jeśli nie można natychmiast wprowadzić blokady, metoda czeka na wejście blokady lub do momentu wygaśnięcia limitu czasu określonego millisecondsTimeout
przez parametr. Jeśli limit czasu wygaśnie przed wprowadzeniem blokady, metoda zwraca wartość false
. Jeśli blokada jest już przechowywana przez bieżący wątek, blokada zostanie ponownie wprowadzona. Aby w pełni zamknąć blokadę i zezwolić innym wątkom na wejście do blokady, bieżący wątek powinien zamknąć blokadę tyle razy, ile wszedł do blokady.
Aby uzyskać więcej informacji, zobacz uwagi dotyczące Lockprogramu .
Dotyczy
TryEnter(TimeSpan)
- Źródło:
- Lock.cs
Próbuje wprowadzić blokadę, czekając w razie potrzeby do momentu wprowadzenia blokady lub do momentu wygaśnięcia określonego limitu czasu.
public:
bool TryEnter(TimeSpan timeout);
public bool TryEnter (TimeSpan timeout);
member this.TryEnter : TimeSpan -> bool
Public Function TryEnter (timeout As TimeSpan) As Boolean
Parametry
- timeout
- TimeSpan
Wartość TimeSpan reprezentująca liczbę milisekund oczekiwania na wejście blokady. Określ wartość reprezentującą wartość Timeout.Infinite (-1
) milisekundy oczekiwania na czas nieokreślony lub wartość reprezentującą 0
milisekundy, aby nie czekać.
Zwraca
true
jeśli blokada została wprowadzona przez bieżący wątek; w przeciwnym razie , false
.
Wyjątki
timeout
, po konwersji na wartość całkowitą milisekund, reprezentuje wartość mniejszą niż milisekundy lub większą niż -1
Int32.MaxValue milisekundy.
Blokada osiągnęła limit powtarzających się wpisów przez bieżący wątek. Limit jest definiowany przez implementację i ma być wystarczająco wysoki, aby nie został osiągnięty w normalnych sytuacjach.
Uwagi
Gdy metoda zwraca true
wartość , bieżący wątek jest jedynym wątkiem, który przechowuje blokadę. Jeśli nie można natychmiast wprowadzić blokady, metoda czeka na wejście blokady lub do momentu wygaśnięcia określonego timeout
. Jeśli limit czasu wygaśnie przed wprowadzeniem blokady, metoda zwraca wartość false
. Jeśli blokada jest już przechowywana przez bieżący wątek, blokada zostanie ponownie wprowadzona. Aby w pełni zamknąć blokadę i zezwolić innym wątkom na wejście do blokady, bieżący wątek powinien zamknąć blokadę tyle razy, ile wszedł do blokady.
Aby uzyskać więcej informacji, zobacz uwagi dotyczące Lockprogramu .