TPL 작업에서 ThreadStatic
과 같은 것을 어떻게 사용할 수 있습니까? 내 이해 ("C#으로 Wrox Professional 병렬 프로그래밍", p74)은 작업이 실행 중에 한 스레드에서 다른 스레드로 전환 할 수 있다는 것입니다.ThreadStatic for TPL 작업
내가 원하는 것을 원하십니까?
이 ID를 모든 메서드에 전달할 필요가 없도록 정적 클래스 내에 세션 ID를 유지하려고합니다. 내 라이브러리에는 login(id)
, logout(id)
과 같은 메서드가 있으며이 ID와 연결된 자격 증명을 처리하는 여러 메서드가 있습니다. 그러나 나는 모든 사람에게이 이드를 전달하고 싶지 않다. 내 라이브러리가 다른 세션에서 다른 스레드 내에서 호출되도록 할 수 있습니다. 따라서 login()
의 ID를 ThreadStatic
변수에 저장하면됩니다.
이제는 나를 위해 생성 된 TPL 작업을 ThreadPool
으로 사용하고 싶습니다. 내 세션 ID를 작업에 전달할 수 있지만이 ID를 ThreadStatic
변수에 저장하면 내 작업이 스레드를 전환해도 생존하지 못합니다.
. 그걸 가능성에 대해 어디서 들었습니까? –
"C#을 사용하는 Wrox Professional 병렬 프로그래밍"책의 74 페이지에 그림이 있으며 작업자 스레드 간의 작업 전환을 보여줍니다. – Gerard
@Gerard : 한 스레드에 대해 * 대기열에 들어가는 작업보다는 * 실행 중 *인지 확인한 다음 실행을 위해 다른 스레드로 전환한다는 의미의 도용이 있습니까? –