繁体   English   中英

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

[英]Requests get other request value in ASHX Handler?

我接受了工作面试,并被询问以下问题:

假设有2个请求恰好同时发送到ashx(handler)。

第一个请求: http://www.secretwordHandler.com/?SecretWord=ABRA : http://www.secretwordHandler.com/?SecretWord=ABRA

第二个请求: http://www.secretwordHandler.com/?SecretWord=KADABRA : 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.Current不是线程安全的,但不是必须的。 Marcus van Houdt在本文中对此进行了解释: 了解ASP.NET中的SynchronizationContext

要回答您的问题:第一个请求不可能获得第二个请求的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM