Condividi tramite


SpinLock.TryEnter Metodo

Definizione

Tenta di acquisire il blocco in modo affidabile, in modo tale che anche se si verifica un'eccezione all'interno della chiamata al metodo, è possibile esaminare l'oggetto lockTaken in maniera affidabile per determinare se il blocco è stato acquisito.

Overload

TryEnter(Boolean)

Tenta di acquisire il blocco in modo affidabile, in modo tale che anche se si verifica un'eccezione all'interno della chiamata al metodo, è possibile esaminare l'oggetto lockTaken in maniera affidabile per determinare se il blocco è stato acquisito.

TryEnter(Int32, Boolean)

Tenta di acquisire il blocco in modo affidabile, in modo tale che anche se si verifica un'eccezione all'interno della chiamata al metodo, è possibile esaminare l'oggetto lockTaken in maniera affidabile per determinare se il blocco è stato acquisito.

TryEnter(TimeSpan, Boolean)

Tenta di acquisire il blocco in modo affidabile, in modo tale che anche se si verifica un'eccezione all'interno della chiamata al metodo, è possibile esaminare l'oggetto lockTaken in maniera affidabile per determinare se il blocco è stato acquisito.

TryEnter(Boolean)

Origine:
SpinLock.cs
Origine:
SpinLock.cs
Origine:
SpinLock.cs

Tenta di acquisire il blocco in modo affidabile, in modo tale che anche se si verifica un'eccezione all'interno della chiamata al metodo, è possibile esaminare l'oggetto lockTaken in maniera affidabile per determinare se il blocco è stato acquisito.

public:
 void TryEnter(bool % lockTaken);
public void TryEnter (ref bool lockTaken);
member this.TryEnter : bool -> unit
Public Sub TryEnter (ByRef lockTaken As Boolean)

Parametri

lockTaken
Boolean

True se il blocco è stato acquisito. In caso contrario, False. Prima di chiamare questo metodo è necessario inizializzare lockTaken su False.

Eccezioni

È necessario inizializzare l'argomento lockTaken su False prima della chiamata a TryEnter.

Il rilevamento della proprietà dei thread è abilitato e il thread corrente ha già acquisito questo blocco.

Commenti

A differenza Enterdi , TryEnter non blocca l'attesa del blocco disponibile. Se il blocco non è disponibile quando tryEnter viene chiamato, restituirà immediatamente senza ulteriori rotazioni.

Vedi anche

Si applica a

TryEnter(Int32, Boolean)

Origine:
SpinLock.cs
Origine:
SpinLock.cs
Origine:
SpinLock.cs

Tenta di acquisire il blocco in modo affidabile, in modo tale che anche se si verifica un'eccezione all'interno della chiamata al metodo, è possibile esaminare l'oggetto lockTaken in maniera affidabile per determinare se il blocco è stato acquisito.

public:
 void TryEnter(int millisecondsTimeout, bool % lockTaken);
public void TryEnter (int millisecondsTimeout, ref bool lockTaken);
member this.TryEnter : int * bool -> unit
Public Sub TryEnter (millisecondsTimeout As Integer, ByRef lockTaken As Boolean)

Parametri

millisecondsTimeout
Int32

Numero di millisecondi di attesa oppure Infinite (-1) per un'attesa indefinita.

lockTaken
Boolean

True se il blocco è stato acquisito. In caso contrario, False. Prima di chiamare questo metodo è necessario inizializzare lockTaken su False.

Eccezioni

millisecondsTimeout è un numero negativo diverso da -1, che rappresenta un timeout infinito.

È necessario inizializzare l'argomento lockTaken su False prima della chiamata a TryEnter.

Il rilevamento della proprietà dei thread è abilitato e il thread corrente ha già acquisito questo blocco.

Commenti

A differenza Enterdi , TryEnter non blocca in modo indefinito in attesa che il blocco sia disponibile. Il blocco verrà bloccato fino a quando il blocco non è disponibile o fino a quando non millisecondsTimeout è scaduto.

Vedi anche

Si applica a

TryEnter(TimeSpan, Boolean)

Origine:
SpinLock.cs
Origine:
SpinLock.cs
Origine:
SpinLock.cs

Tenta di acquisire il blocco in modo affidabile, in modo tale che anche se si verifica un'eccezione all'interno della chiamata al metodo, è possibile esaminare l'oggetto lockTaken in maniera affidabile per determinare se il blocco è stato acquisito.

public:
 void TryEnter(TimeSpan timeout, bool % lockTaken);
public void TryEnter (TimeSpan timeout, ref bool lockTaken);
member this.TryEnter : TimeSpan * bool -> unit
Public Sub TryEnter (timeout As TimeSpan, ByRef lockTaken As Boolean)

Parametri

timeout
TimeSpan

Oggetto TimeSpan che rappresenta il numero di millisecondi di attesa oppure TimeSpan che rappresenta -1 millisecondi per un'attesa indefinita.

lockTaken
Boolean

True se il blocco è stato acquisito. In caso contrario, False. Prima di chiamare questo metodo è necessario inizializzare lockTaken su False.

Eccezioni

timeout è un numero negativo diverso da -1 millisecondi, che rappresenta un timeout infinito -o- timeout è maggiore di Int32.MaxValue millisecondi.

È necessario inizializzare l'argomento lockTaken su False prima della chiamata a TryEnter.

Il rilevamento della proprietà dei thread è abilitato e il thread corrente ha già acquisito questo blocco.

Commenti

A differenza Enterdi , TryEnter non blocca in modo indefinito in attesa che il blocco sia disponibile. Il blocco verrà bloccato fino a quando il blocco non è disponibile o fino a quando non timeout è scaduto.

Vedi anche

Si applica a