0
나는 면접을했고 나는 다음과 같은 질문을 받았다 : 요청은 ASHX Handler에서 다른 요청 값을 얻습니까?
가의 2 개 요청이 ASHX (핸들러)에 동일한 시간에 을 보낸 가정 해 봅시다.먼저 요청 : http://www.secretwordHandler.com/?SecretWord=ABRA
두 번째 요청 :
public void ProcessRequest (HttpContext context) {
Random rnd = new Random();
int randomSleepTime = rnd.Next(1000, 10001);
Thread.Sleep(randomSleepTime);
string secretWord = HttpContext.Current.Request.QueryString["SecretWord"];
Thread.Sleep(randomSleepTime);
//What is the secret Word??
Console.WriteLine(secretWord);
}
는 첫 번째 요청은 두 번째 요청의 결과를 얻을 것이다 가능 : http://www.secretwordHandler.com/?SecretWord=KADABRA
이것은 ASHX은?
나는
Thread.Sleep은 현재 스레드를 일시 중단합니다 ... context.Current.Request.QueryString [ "SecretWord"] ... ProcessRequest()에 대한 호출이 스레드로부터 안전하지 않으면 일어날 수 있지만 ... 이 기능, 나는 아니오라고 말할 것입니다. –
여기서 키커는 (정적 인)'HttpContext.Current.Request'가 사용되고 인스턴스화 된 입력 컨텍스트가 아닌 것처럼 보입니다. –
@ AllanS.Hansen 그건 내가 생각한 것이지만, 어떻게 될지 확실히 말할 수는 없다. ... –