다음을 통해 공유


SpinLock.Enter(Boolean) 메서드

정의

메서드 호출에서 예외가 발생하는 경우에도 안정적인 방식으로 잠금을 얻으며 잠금을 얻었는지 확인하기 위해 lockTaken을 안정적으로 검사할 수 있습니다.

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

매개 변수

lockTaken
Boolean

잠금을 얻었으면 true이고, 그렇지 않으면 false입니다. 이 메서드를 호출하기 전에 lockTaken을 false로 초기화해야 합니다.

예외

lockTaken 인수는 Enter를 호출하기 전에 false로 초기화해야 합니다.

스레드 소유권 추적 기능을 사용할 수 있으며 현재 스레드가 이미 이 잠금을 획득했습니다.

설명

SpinLock 는 재진입 잠금이 아닙니다. 즉, 스레드가 잠금을 보유하는 경우 잠금을 다시 입력할 수 없습니다. 스레드 소유권 추적을 사용하도록 설정하면(사용 가능 IsThreadOwnerTrackingEnabled여부와 관계없이) 스레드가 이미 보유하고 있는 잠금을 다시 입력하려고 할 때 예외가 throw됩니다. 그러나 스레드 소유권 추적을 사용하지 않도록 설정하면 이미 보유한 잠금을 입력하려고 하면 교착 상태가 발생합니다.

먼저 호출하지 않고 호출 Exit 하는 경우 내부 상태를 호출 Enter 하면 SpinLock 손상될 수 있습니다.

적용 대상

추가 정보