코드의 한 부분이 작업 번호를 추적하기 위해 스레드 안전해야하는 다중 스레드 응용 프로그램을 작성하고 있습니다.다중 스레드 응용 프로그램에서 작업 번호 추적
나는이 방법이 있습니다
private void IncrementTaskNumber() {
Interlocked.Increment(ref _TaskNumber);
}
_TaskNumber는 같은 클래스에있는 사립 INT이다. 문제는 이것이 나에게 "속성, 인덱서 또는 동적 멤버 액세스가 out 또는 ref 매개 변수로 전달되지 않을 수 있습니다"예외를 던졌습니다. 이 해결하기 위해, 내가 할 :
private void IncrementTaskNumber() {
int _taskNum = _TaskNumber;
Interlocked.Increment(ref _taskNum);
_TaskNumber = _taskNum;
}
이 여전히 스레드 안전 있습니까?
'_TaskNumber' 선언문을 보여주십시오. 오류 메시지가 주어지면'private int _TaskNumber {get; 세트; }'- 그게 맞습니까? –
@ Reduce Copsey, 예 private int _TaskNumber {get; set;} – ThomasVestergaard
개인 속성이 아닌 필드를 사용해야합니다. 자세한 내용은 내 대답을 참조하십시오. –