3
someObj
이 작성된 동일한 스레드에서 someObj.someMethod()
이 실행 중인지 확인하는 방법이 있습니까? 내가 특정 동시성 제약 조건을 엉망으로 만들면 나중에 디버깅 두통을 줄일 수 있습니다.현재 스레드가 개체가 생성 된 스레드와 동일한 지 여부 확인
someObj
이 작성된 동일한 스레드에서 someObj.someMethod()
이 실행 중인지 확인하는 방법이 있습니까? 내가 특정 동시성 제약 조건을 엉망으로 만들면 나중에 디버깅 두통을 줄일 수 있습니다.현재 스레드가 개체가 생성 된 스레드와 동일한 지 여부 확인
유일한 방법은 스레드 ID를 만들 때이를 저장하는 것입니다. .NET 4.5 :
readonly int ownerThreadId;
public SomeType() {
ownerThreadId = Environment.CurrentManagedThreadId;
}
는
someMethod
에서 같은 용어에 대해 확인. 다른 프레임 워크 버전에, 당신이해야 할 수도 있습니다
참고 : 대신
ownerThreadId = Thread.CurrentThread.ManagedThreadId;
.