c# - 多线程应用程序中的静态类/方法

标签 c# multithreading static

我有一个需要访问 MSSQL 的多线程应用程序。我创建了一个带有静态方法的类,其中每个方法如下所示:

public static int [] Login(string [] LoginDetails)
    {
        using (SqlConnection connection = new SqlConnection(CS))
        {
}

这是正确的吗?我在多线程方面没有经验,但我想每个线程都会运行这个静态方法及其变量的“副本”,因此它们不会被共享。我假设如果我在类级别声明静态成员(如 sqlConnection)并将其设为静态,它将被共享,因此会导致并发访问问题。

最佳答案

并不是说它“复制”了方法本身,而是每个方法调用(无论是在同一线程中递归还是在不同线程中)确实都会获得自己单独的一组局部变量。

只要这里的数据没有以可变的方式在线程之间共享,就应该没问题。

(顺便说一句,更惯用的做法是在名称旁边包含类型的数组部分,并且不带空格 - 所以 int[] 而不是 int [] .)

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

相关文章:

C# 编译为 MSIL 代码

multithreading - 我可以使用多少个后台工作人员?

java - Java中返回数组的方法可以是私有(private)的吗?

java - 实用程序类的静态方法与非静态方法的性能

C# 如何将点转换为 vector2?

c# - 如何在 SQL Server 中使用 SMO 删除和重新创建主键索引?

c++ - 如何在 if-else 阶梯中针对特定条件进行互斥锁定和解锁?

python - Boost Python用默认参数包装静态成员函数重载

c# - 如何在 C# 中释放桌面应用程序的虚拟机/专用字节

multithreading - Gtk#窗口移动在多线程时卡住