静态方法和IIS/asp.net中的调用堆栈

bri*_*wey 3 c# asp.net iis callstack static-methods

理论问题.如果您有100个单独的请求进入一个调用下面的静态方法的aspx网页.

    public static GeocodeResult GeocodeQuery(string query)
    {
        int train, tube, dlr = 0;

        // manipulate these ints
        if (train)
        {
            // do something important
        }

    }
Run Code Online (Sandbox Code Playgroud)

每个请求都有一个单独的调用堆栈吗?

如果是这样 - 这个静态方法调用是否被推送到这些单独的调用堆栈上?

如果是这样 - 因此这些内部线程是否安全?即.100个请求,100个调用帧,300个整数.

干杯

Vit*_*sky 6

是的,每个请求都有自己的调用堆栈.并且每个堆栈将包含它自己的查询,训练,管,dir值,因为局部变量和方法参数存储在堆栈中.

因此,除非您访问某些共享状态,否则此方法是线程安全的.