2012-07-31 4 views

답변

1

사용 사례에 따라 다릅니다. 간단한 시나리오에서 비동기를 사용하면 즉각적인 성능상의 이점은 없지만보다 복잡한 시나리오와 확장 성 측면에서 중요 할 수 있습니다.

예를 들어 많은 서버로 여러 요청을 보내는 것이 분명히 병렬로 수행하는 것이 가장 좋으며 비동기를 사용하여 처리 할 수 ​​있습니다.

확장 성과 관련하여 동기화 웹 요청을 사용하여 느린 외부 서버와 통신하는 웹 응용 프로그램을 고려하십시오. IIS는 사용자의 요청을 처리하기 위해 제한된 양의 스레드 만 할당하므로 사용자 수가 증가하면 외부 웹 요청을 기다리는 동안 모든 사용자 스레드가 차단 될 위험이 있습니다. 즉, 일부 사용자 요청은 IIS에서 거부됩니다.

0

asp.net에서 동기화 (4.5까지)를 사용해야합니다. 하지만 Windows Form이나 다른 유형의 C# 프로젝트에서는 스레드가 보류 상태가되지 않습니다. ASYNC 완료 이벤트를 호출하면 UI 또는 Main 스레드를 보류하지 않고 적절한 정보를 갱신 할 수 있습니다.

+0

ASP.NET에서 동기 웹 요청을 사용할 필요가 없습니다. – davidfowl

+0

asp.net 4.5 이전에 전역 변수를 사용하지 않고 스레드를 사용하는 방법을 보여주십시오. 나는 어떻게 알고 싶다. – jamesbar2

+0

전역 변수를 사용할 때 비동기 코드 작성과 관련이 있습니까? ASP.NET은 .NET 2.0 이후 비동기 처리기 및 비동기 페이지를 지원합니다. 4.5는 (특히 비동기를 기다리고있는) 몇 가지 개선점을 추가했지만 오늘 ASP.NET에서 비동기 웹 요청을 할 수 있습니다. – davidfowl

0

asychronous 모드에서 서버가 원하는대로 응답 할 수 있습니다.이 방법은 네트워크를 최소화하여 응답 시간을 최소화하고 사용자 환경을 개선합니다.

+0

왜 동기 프로세스가 서버가 원하지 않는 일을한다고 생각합니까? – rikitikitik

+0

백그라운드에서 실행하고 싶은 일괄 처리가 있고 다른 누군가가 코드화되어있어 프로세스 수가 적을 때만 실행하고 싶습니다. – cdub