我有一个看起来像这样的静态对象:
public static class MyStaticObject
{
public static void SomeMethod()
{
MyObject TheObject = new MyObject();
//some long runnning tasks
}
}
正如您所看到的,当SomeMethod()
运行时,它会创建MyObject
。在创建它的方法返回后,此实例化对象会发生什么?如果在响应先前的方法调用时已经执行了SomeMethod()
,是否会出现并发问题,或者每个方法调用是否实例化了自己的MyObject
?
感谢。
答案 0 :(得分:3)
TheObject
只是一个局部变量,无论事件是否为静态,它的行为方式都相同。
因此,在方法返回后,对象(如果没有更多的引用)就可以为垃圾收集器做好准备。
如果是递归,只会创建另一个局部变量。
如果您有C/C++
背景,那么TheObject
不是 static
个C/C++
个变量。