相关疑难解决方法(0)

在C#中调用静态方法会发生什么?

创建类的实例时,该实例中的所有变量都特定于该实例,并在实例超出范围时被杀死.但它如何在静态方法中工作?假设有两个人在同一时间调用System.Math.Abs​​().运行时如何区分两个调用者?这是线程进来的地方吗?是否为每个调用者自动创建了单独的线程?

c# static

9
推荐指数
3
解决办法
1988
查看次数

线程安全和局部变量

如果我有这样的局部变量:

Increment()
{
    int i = getFromDb(); // get count for a customer from db 
};
Run Code Online (Sandbox Code Playgroud)

这是一个增加的实例类(每次客户 - 一个实例对象 - 进行购买),这个变量线程是否安全?我听说局部变量是线程安全的,因为每个线程都有自己的堆栈等等.

另外,我认为这个变量是共享状态吗?我在思维部门缺乏的是这个变量将与不同的客户对象(例如John,Paul等)合作,因此是线程安全的,但这是有缺陷的思维,并且在并发编程方面缺乏经验.这听起来很幼稚,但是我在并发编码方面没有很多经验,就像我一般的同步编码一样.

编辑:此外,函数调用getFromDb()不是问题的一部分,我不希望任何人猜测它的线程安全,因为它只是一个调用,指示值是从一个从数据库获取数据的函数分配的.:)

编辑2:此外,getFromDb的线程安全性得到保证,因为它只执行读取操作.

c#

7
推荐指数
2
解决办法
7605
查看次数

标签 统计

c# ×2

static ×1