내 서버에서 데이터를 요청하는 웹 서비스가 있습니다.C# 스레드 풀 - 값을 반환하는 방법 (요청과 완전히 동기화되도록)
요청을 스레드 풀 내에서 실행해야하며 클라이언트에 값을 반환하려면 어떻게해야합니까?
내 서버에서 데이터를 요청하는 웹 서비스가 있습니다.C# 스레드 풀 - 값을 반환하는 방법 (요청과 완전히 동기화되도록)
요청을 스레드 풀 내에서 실행해야하며 클라이언트에 값을 반환하려면 어떻게해야합니까?
멀티 스레딩은 비동기식입니다. 가치를 되찾기 위해서는 값을 전달할 수 있도록 콜백 (작업이 끝나면 스레드가 호출 할 수있는 메소드)을 구현해야합니다.
초기 요청시 클라이언트에 응답을 전달할 수 없습니다. 클라이언트가 연속적으로 메소드를 호출하여 작업이 완료되었는지 확인하는 토큰을 반환해야합니다. 작업이 완료되면 메서드는 결과를 반환하고 그렇지 않으면 결과를 반환하여 폴링을 계속해야 함을 나타냅니다.
.NET 4.0을 사용하는 경우 Task<T>
class을 사용하고 클라이언트에 다시 전달하는 것이 좋습니다. 귀하의 고객은 결과를 기다리고, 기다리고, 완료되면 통보를받을 수 있습니다.
.NET 4.0으로 작업하지 않는 경우, 사용자 정의 Delegate
을 사용하여 익명 메소드/메소드 그룹을 그 다음 BeginInvoke를 위임자에게 호출합니다. 위의 작업 (폴링, 대기 등)을 수행하는 데 사용할 수있는 IAsyncResult
implementation을 반환합니다.
http://geekswithblogs.net/rashid/archive/2007/06/19/Utilize-ThreadPool-in-WebService.aspx 이것이 내가 원하는 것 같아요. – Nipuna