스레드 로컬 저장소를 사용하여 충족시킬 수 있다고 생각되는 응용 프로그램의 요구 사항이 있지만이를 피하는 것이 가장 바람직하지 않은지 궁금합니다..NET에서 스레드 로컬 저장소를 사용하는 가장 좋은 방법은 무엇입니까?
나는이 주제에 대한 몇 가지 기사를 읽고 :
http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=58
http://msdn.microsoft.com/en-us/library/system.threadstaticattribute(vs.80).aspx
나는 그것을 사용하는 방법 을 알고 난 사용하는 경우는, 난 그냥 궁금 해서요.
알고 계시겠습니까?
[편집]
여기에 사용 사례입니다 :
나는 각 쿼리에 대한 로깅을 많이 할 몇 가지 방법을 통해 모든 데이터 액세스를 깔때기. 필자가 기록한 한 가지는 커맨드 텍스트가 가득 찬 덤프 명령으로, 추적 로그에서 Sql Management Studio로 직접 복사 - 붙여 넣기를 할 수 있습니다.
내 웹 응용 프로그램의 global.asax에서 처리되지 않은 예외가 발생할 때 최대한 많은 정보를 관리자에게 전자 메일로 보냅니다. SqlException을 얻을 때 SQL 명령 덤프 텍스트를이 전자 메일에 넣으므로 쿼리로 인해 페이지가 폭파 될 때 추적 로그를 파고 드는 시간을 절약 할 수 있습니다.
내 데이터 액세스 클래스의 메서드 시그니처를 변경하지 않고 일부 참조를 스택 아래로 전달할 수 있습니다. 예외가 발생하면이를 가져옵니다. 나는 TLS가 "lastsqlcommand"와 같은 것을 넣을 수있는 좋은 장소가 될지도 모른다고 생각했지만 실행 가능한 솔루션처럼 보이지 않습니다.
나는 항상 스레드 로컬 저장소를 사용하지 않았으며 동일한 작업을 수행하는 또 다른 방법을 발견했습니다. 내 생각은 항상 스레드 로컬 저장소 아마도 직접 액세스 (아마도 이것이 옳은지 확실하지 않다)보다 느립니다. 다른 사람들이 생각하는 것이 궁금 할 것입니다. – dongola7