请求在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);
    }

第一个请求是否可能得到第二个请求的结果?

我不确定答案,我必须承认,因为线程睡眠,我感到困惑…

请求在ASHX处理程序中获取其他请求值

似乎HttpContext。当前不是线程安全的,但它不必。Marcus van Houdt在文章《理解ASP中的SynchronizationContext》中对此进行了解释。净

回答你的问题:第一个请求不可能得到第二个请求的结果