c# - C# 中的线程和静态方法

标签 c# multithreading static-methods reentrancy

这里以一个无意义的扩展方法为例:

public static class MyExtensions
{
    public static int MyExtensionMethod(this MyType e)
    {
        int x = 1;
        x = 2;

        return x
    }
}

假设一个执行线程完成并包括以下行:

x = 2; 

处理器然后上下文切换,另一个线程进入相同的方法并完成该行:

int x = 1;

我是否正确地假设第一个线程创建和分配的变量“x”与第二个线程创建和分配的变量“x”位于单独的堆栈上,这意味着该方法是可重入的?

最佳答案

是的,每个线程都有自己独立的局部变量。即使被多个线程同时调用,此函数也始终返回 2。

关于c# - C# 中的线程和静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3129354/

相关文章:

Javascript——如何在不使用 new 运算符的情况下启用静态方法,同时防止使用实例函数

static-methods - 静态方法接近纯方法吗?

c# - 如何保持登录 Awesomium?

c# - Xamarin iOS : Wait for HKHealthStore SaveObject to finish

c# - 密码加密

ios - DISPATCH_QUEUE_CONCURRENT和全局并发调度队列之间有什么区别

python - 如何管理 python 线程结果?

c++进程不会停止

c# - 具有不同数据类型的主要方法

c++ - 如何调用 C++ 静态方法