Udostępnij za pośrednictwem


Lock.TryEnter Metoda

Definicja

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 truewartość , 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 truewartość , 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ż -1Int32.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 truewartość , 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 .

Dotyczy