프로 시저를 실행할 때 사용자의 네트워크 연결이 몇 초 동안 재설정되는 ASP.NET 웹 응용 프로그램을 유지 관리합니다. 따라서 페이지 요청은 웹 응용 프로그램의 응답을받지 못하기 때문에 사용자의 요청에 따라 시간 초과됩니다 (응답 패킷이 도착하기 전에 연결이 끊어집니다).비동기 기능 웹 응용 프로그램의 Thread.Sleep
이 상황을 해결하기 위해 ASP.NET 페이지가 Thread.Sleep(5000); // sleep for 5 seconds before executing the connection reset
을 포함하는 비동기 함수를 실행하도록 계획했습니다.이 방법으로 브라우저는 연결이 재설정되기 전에 페이지의 응답을받는 데 5 초가 걸립니다.
ASP.NET에서 Thread.Sleep 및 비동기 함수를 사용하는 데 대한 우려가 있습니다. 이전에는 시도한 적이 없으므로 잠재적 인 문제가 발생할 수 있는지 확신 할 수 없습니다. ASP.NET 응용 프로그램에서 Thread.Sleep
이 포함 된 비동기 스레드를 시작하면 잠재적 인 문제가 발생할 수 있습니까? 그렇다면 더 나은 해결책을 생각할 수 있습니까?
타이머가 참조 된 개체 (이 경우 페이지)가 파괴 되더라도 타이머가 계속 실행됩니까? – regex
이것을 참조하는 페이지가 가비지 수집 된 경우 타이머도 활성화되므로 실행되지 않습니다. 강력한 참조를 유지하려면 만료되지 않은 타이머의 정적 콜렉션을 유지해야합니다. – FacticiusVir
좋은 점 - 모든 스레드가 잠자고 스레드가 다시 깨어나기를 기다리는 동안 응용 프로그램이 대기 상태에 있으면 ThreadPool이 자주 중단 될 수 있습니다. – SqlRyan