2016-06-26 2 views
0

내 WCF 서비스 응용 프로그램이 "단일 스레드"이고 백그라운드 스레드의 일부 내용을 처리하지만 메인 IIS 스레드에서 처리 된 데이터를 처리해야한다고 가정합니다. (역으로, 그리고 겉으로는 더 쉽게, 들어오는 모든 메소드를 백그라운드 스레드에서 다시 호출 할 수 있지만, 이것이 내가 요구하는 것이 아니다).WCF : 기본 IIS 스레드에서 백그라운드 작업을 실행하는 방법?

백그라운드 스레드에서 내 WCF 메서드가 호출되는 주 스레드를 "알리고" "깨우기"위해 지정한 메서드를 처리 할 수 ​​있습니까?

나는 IIS의 & IIS 내부 동작에 익숙하지 않습니다. 나는 서비스 포트가 완료된 포트에서 내 서비스의 메소드가 호출되는 것을 추측하고 IO 서비스가 질식하는 것을 방지하기 위해 가능한 한 짧은 시간을 가져야한다. 모든 스레드를 하나의 스레드 (내 메서드 호출 및 수행해야하는 내 비디오 처리 작업)에 동기화하려는 경우 q 명령을 만들고 모든 들어오는 메서드 호출을 명령 Q에 넣어야한다고 생각하기 시작했습니다.

확실히 이것은 매우 일반적인 시나리오입니다. 대부분의 사람들은 어떻게 이것을합니까?

답변

0

제 생각에 백그라운드에서 뭔가를 실행하려고하고 백그라운드 작업의 결과에 따라 다른 것을 처리하려고합니다.

아마도 작업을 시도 할 수 있습니다.이 작업은 작업이 끝나면 콜백 (Task.ContinueWith)을 지정할 수 있습니다.

관련 문제