2012-11-08 4 views
0

ASP.NET MVC에 조금 익숙합니다. 검색 한 후에도 아직 이해할 수없는 것이 하나 있습니다. 비동기 컨트롤러가 필요한 이유는 무엇입니까? 모든 HTTP 요청으로 인해 서버의 새로운 인스턴스가 생성되므로 서버가 요청을 차단하지 않으면 왜 비동기 컨트롤러가 필요합니까?ASP.NET MVC에서 비동기 컨트롤러가 필요한 이유는 무엇입니까?

+0

많은 요청 (예 : SO)을받는 서버를 다루지 않는 한, 차단 방지에별로 도움이되지 않습니다. –

+0

이것을 지적 해 주셔서 감사합니다. 어떻게해야합니까? 삭제하십시오. – Shuping

+0

자신 만의 질문에 투표 할 수 있습니다. – Marijn

답변

0

긴 조작이 수행되는 동안 비동기 컨트롤러의 핵심은 IIS 스레드를 해제하는 것입니다. IIS 스레드는 .NET 스레드 풀에서 가져옵니다. 스레드 풀 스레드의 최대 수는 시스템 구성에 따라 다릅니다 (내 코어 2 쿼드에서는 1023입니다). 즉, 긴 작업은 이러한 스레드 중 하나를 사용합니다. 최대 수에 도달하면 추가 요청은 하나가 해제 될 때까지 기다려야 할 수 있습니다. 매우 명확하게 말하자면 : 긴 폴링 요청을 실행하는 1023 개의 작업이있는 경우 웹 사이트가 추가 요청에 응답하지 않습니다.

비동기 컨트롤러를 사용할 때 스레드 풀 외부에서 스레드를 만들 수 있으므로 최대 스레드 수 제한을 초과 할 수 있습니다.

+0

탱크, 지금은 이해했다. – Shuping

관련 문제