请求在ASHX处理程序中获取其他请求值
本文关键字:请求 获取 其他 程序 ASHX 处理 | 更新日期: 2023-09-27 17:54:21
我参加了一次工作面试,面试官问了我以下问题:
假设两个请求在完全相同的时间发送到ashx(处理程序)。
首次请求:http://www.secretwordHandler.com/?SecretWord=ABRA
第二个请求:http://www.secretwordHandler.com/?SecretWord=KADABRA
这是ashx:
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);
}
第一个请求是否可能得到第二个请求的结果?
我不确定答案,我必须承认,因为线程睡眠,我感到困惑…
似乎HttpContext。当前不是线程安全的,但它不必。Marcus van Houdt在文章《理解ASP中的SynchronizationContext》中对此进行了解释。净
回答你的问题:第一个请求不可能得到第二个请求的结果