我有一个需要访问 MSSQL 的多线程应用程序。我创建了一个带有静态方法的类,其中每个方法如下所示:
public static int [] Login(string [] LoginDetails)
{
using (SqlConnection connection = new SqlConnection(CS))
{
}
这是正确的吗?我在多线程方面没有经验,但我想每个线程都会运行这个静态方法及其变量的“副本”,因此它们不会被共享。我假设如果我在类级别声明静态成员(如 sqlConnection)并将其设为静态,它将被共享,因此会导致并发访问问题。
最佳答案
并不是说它“复制”了方法本身,而是每个方法调用(无论是在同一线程中递归还是在不同线程中)确实都会获得自己单独的一组局部变量。
只要这里的数据没有以可变的方式在线程之间共享,就应该没问题。
(顺便说一句,更惯用的做法是在名称旁边包含类型的数组部分,并且不带空格 - 所以 int[]
而不是 int []
.)
关于c# - 多线程应用程序中的静态类/方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8105741/