난 그냥 add는 비동기 클라이언트가 멀리 있거나 가질 때 상당한 시간이 걸릴 수 있습니다 HTTP 클라이언트에 대한 응답을 보내는 응답
플러싱 응답 비동기
플러싱 급진적 인 변화가없는 선량 생각 낮은 대역폭 연결. 일반적으로 ASP.NET은 응용 프로그램에서 만든 응답 바이트를 버퍼링합니다. 그런 다음 ASP.NET은 요청 처리의 끝에 매우 많은 버퍼가 발생하여 버퍼를 한 번만 전송합니다. 버퍼링 응답이 큰 경우 (예를 들어, 클라이언트에 큰 파일 스트리밍)
, 주기적으로 클라이언트에 버퍼링 된 출력을 전송하고 제어 메모리 사용량을 유지하기 위해 HttpResponse.Flush를 호출해야합니다. 그러나 Flush가 동기 호출이기 때문에 플러시를 반복적으로 호출하면 잠재적으로 장기 실행 요청이 지속되는 동안 스레드가 소비됩니다.
ASP.NET 4.5는 HttpResponse 클래스의 BeginFlush 및 EndFlush 메서드를 사용하여 비동기 적으로 플러시를 수행하는 기능을 추가합니다. 이러한 메서드를 사용하면 운영 체제 스레드를 연결하지 않고도 점진적으로 클라이언트에 데이터를 보내는 비동기 모듈과 비동기 처리기를 만들 수 있습니다. BeginFlush와 EndFlush 호출 사이에 ASP.NET은 현재 스레드를 해제합니다. 이로 인해 장기 실행 HTTP 다운로드를 지원하는 데 필요한 총 활성 스레드 수가 실질적으로 줄어 듭니다.
나는이 사람을 알고 있습니다. Response.Flush가 작동하지 않는 이유는 무엇입니까? – user960567