2009-11-13 7 views
16

정적 클래스 내에 다음과 같은 정적 메서드가 있습니다. 제 질문은 정적 메서드 내에서 HttpContext.Current.Response를 사용하는 것이 안전합니까? 100 % 확신 할 수 스레드 안전하고 호출 스레드와 관련된 경우에만 .. 아무도 대답을 알고 있습니까?정적 메서드 내에서 HttpContext.Current.Response

답변

27

예 매우 안전합니다. HttContext.Current는 현재 실행중인 스레드에서 현재 HttpContext를 가져옵니다.

일반적인 기술이며 "트램프 데이터"와 같은 컨텍스트 개체를 전달하지 않아도됩니다.

+0

우수, 생각 ... 그래서 내 모든 방법 주위에 컨텍스트를 전달하고 싶지 않았어. – Rippo

+2

"부랑자 데이터"- 권자 – Yatrix

10

HTTPContext.Current는 정적이므로 정적 메서드에서 호출한다는 사실은 부적절합니다. HTTPContext.Current가 현재 스레드의 HTTP 컨텍스트 (있는 경우)를 반환하는 방식으로 구현된다는 점이 적합합니다.

+0

좋은 설명, 감사합니다 – Rippo

5

스레드 안전성이란 정확히 무엇을 의미합니까? 예, HttpContext.Current은 현재 스레드와 연결된 HttpContext 개체를 반환합니다. 요청을 현재 처리중인 스레드 (예 : 비동기 함수 호출) 이외의 스레드에서 함수를 호출하면 원하는 HttpContext 개체에 액세스 할 수 없습니다.

또 다른 접근법은 컨텍스트 개체를 함수의 인수로 전달하도록하는 것입니다.

+1

+1 비동기 스레드 –

관련 문제