Threadpool 스레드의 문화를 변경하면 수영장으로 돌아올 때 영향을 미칩니 까?

StackOverflow https://stackoverflow.com/questions/1467194

문제

내가 설정하면 CurrentCulture 스레드 풀 스레드의 스레드가 실행을 완료하고 스레드 풀로 되돌아 갈 때 어떻게됩니까? 그게 얻는가? CurrentCulture 기본값으로 다시 재설정하십시오 (무엇을 의미하는지), 내가 설정 한 문화를 유지합니까?

프레임 워크가 스레드를 기본 상태로 재설정하여이를 방지하기를 바라고 있지만이 효과에 대한 문서를 찾을 수 없습니다. 내가 찾은 가장 가까운 것은 MSDN 문서에서 나온 것입니다. 스레드 풀:

스레드 풀이 스레드를 재사용하면 스레드 로컬 스토리지 또는 ThreadStaticAttribute 속성으로 표시된 필드에서 데이터를 지우지 않습니다. 따라서 한 메서드로 스레드 로컬 스토리지에 배치 된 데이터는 동일한 스레드 풀 스레드에 의해 실행되는 다른 방법에 노출 될 수 있습니다.

이것은 스레드가 있음을 나타냅니다 ~ 아니다 반환되면 재설정하십시오.

나는 이것을 테스트하기 위해 샘플 코드를 시도했지만 하다 문화가 재설정 된 것 같지만 Threadpool의 작은 하위 집합 만 사용하고 있다고 생각하기 때문에이 동작을 올바르게 테스트하고 있다고 확신하지 못하므로 이미 가지고있는 스레드를 테스트하고 있다고 확신 할 수 없습니다. 문화 세트.

도움이 되었습니까?

해결책

나는 Threadpool에 의존하지 않을 것입니다 항상 정보 재설정, 특히 인용 한 텍스트 때문에.

스레드 풀의 문화를 "변경"하는 것에 대해 걱정하고 있다면 스레드 작업이 완료되면 재설정해야합니다. 이것은 충분히 간단한 작업입니다.

나는 현재 ThreadPool이 이것을한다는 것을 믿지 않지만 했다, .NET 4+의 ThreadPool 구현이 변경되지 않는다고 가정하는 것은 안전하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top