msdn : "이 형식의 공용 static (Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 모든 인스턴스 멤버는 스레드로부터 안전하지 않을 수 있습니다." 인스턴스 메소드 만 포함합니다.C# Multithreaded 응용 프로그램의 TraceSource 클래스
모든 활동이 TextWriterTraceListener에 의해 레코더를 텍스트 파일로 가져 오는 방식으로 어떻게 사용해야합니까? 모든 스레드가 (호출하여) TraceEvent 메소드를 사용하는 정적 멤버입니다.
(나는이 질문을 일종의 how to instantiate C# TraceSources to log (multithreaded) ASP.NET 2.0 Web application (asmx ws)?에 묻었지만, 누군가 문서에 대해서도 괜찮다고 말하면 나는 믿을 수 없다.) 스레드 안전하지 않은 자원을 사용 (또는 스레드 안전이 보장되지 않음) 멀티 스레드 응용 프로그램의 경우
예 또는 모니터 클래스. 하지만 mysql 질문 : TraceSource의 정적 인스턴스를 하나 가지고 TraceEnvent 메서드를 사용하는 것이 안전할까요? http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/93696038-2255-4d7c-a53a-b0b1bcdd2fc2를 참조하십시오. –
알겠습니다. 나는 내 대답을 더 자세히 설명했다. 희망이 도움이됩니다. –
TraceSource의 경우 TraceListener가 스레드로부터 안전하지 않기 때문에 'thread-unsafeness'가 원인 일 수 있습니다. 이것이 TraceInternal.UseGlobalLock이있는 이유입니다. 내가 알고 싶은 건 : TraceListener.IsThreadSafe가 TextWriterTraceListener가이 전역 잠금만큼 false를 반환한다면? 성능상의 이유로 이중 잠금을 원하지 않습니다. 예를 들어 http://www.grimes.demon.co.uk/workshops/InstrWSThree.htm을 참조하십시오. –