일부 코드를 검토 중이며 코드 분석 (fxCop) 경고 중 하나가 매우 혼란 스럽습니다. 이에 대한 코드는 클래스의 시작 부분에 변수를 만들어 몇 mutex 년대를 구현하고, 유사한뮤텍스가 올바르게 구현되었으며 어떻게 처리합니까?
private Mutex myMutex = new Mutex();
의 FxCop 내가 뮤텍스 클래스가 구현과 클래스는 IDisposable을 구현해야한다는 메시지와 함께 진열되어
그것은 - 경고 CA1001입니다. 그러나 Mutex를 살펴보면 처리 방법이 없습니다.
뮤텍스가 SafeWaitHandle (이는 IDisposable을 구현합니다. 이것은 fxCop이 선택하는 것으로 추측합니다)이지만 뮤텍스는 표준 일회용 패턴을 통해이를 실제로 처리하지 않습니다. 그것에는 RuntimeHelpers.CleanupCode을 사용하여 델리게이트에 할당 된 private 메소드가 있습니다. 이것은 내가 예외적으로 실행된다는 것을 이해합니다.
이 두 가지 질문이 나타납니다 :
- 는 뮤텍스가 올바르게 구현을? 뮤텍스에 예외가 없으면 SafeWaitHandle은 절대로 처리되지 않습니다.
- 뮤텍스 정리를 위해 처분해야하는 것은 무엇입니까?
DOH : 나는 기어 설정과 이해를 한 것으로 본 순간 : 이 코드를 사용하여 해결. –