C#,关于局部变量生存周期的问题。

将一个局部变量以参数的形式传入线程函数,当代码运行出局部变量所在域,
理论上应当被销毁,但是,测试表名,其在线程函数内仍可用。我的问题是,
1)是因为线程函数对该变量增加了引用,所以不会被销毁,变相拓展了其生存域?
2)还是对象应当被销毁,只是垃圾会后没有执行,一旦执行后访问就会出错?

1个回答

局部变量分为2种,一个是引用类型(类的实例、字符串)一个是值类型(int float等简单类型、结构体、枚举等)。引用类型的生命周期取决于是否所有活动线程的根对象可以遍历到它,如果有,就不会垃圾回收。
值类型是复制过去的,和之前的没有关系了。
如果你不用unsafe,不用非托管内存管理,你是不可能遇到访问一个已经被垃圾回收器回收的对象的情况的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

4
C#调用C++的dll,C++程序中给结构体中变量赋值this指针,对应C#中应该怎么写呢?
2
C# 如何把值类型的变量作为引用加入到list中?
1
c#winform中连接的数据库之间数据的联系
3
请教一个关于c++DLL供C#调用的代码,是否会出现内存泄漏的问题
0
c#调用cplex中的问题中,如何用01决策变量*整数决策变量,有大神吗
1
C#根据输入的数据转换为相应的数据类型。
1
C#上位机编程时,怎么特定地读取采集到的数据
5
c# 使用中文变量和函数名是否会存在问题
2
asp.net mvc 关于foreach 局部变量的问题。
1
c#调用matlab引擎画图遇到MWNumericArray的类型初始值设定项引发异常的问题
1
C#.net中GRIDVIEW的SQL更新语句的问题
1
c#调用js里面的变量进行判断
1
C#通过pc access SAMRT与S7-200 SMART通讯,上位如何实时读PLC的变量,包括I/O信号
2
C#提取xml中重复的节点的值
1
C# 调用C++ DLL 参数Emgu.cv.Mat如何传递
1
C#如何排查这条if语句运行时间过长的问题?
1
C语言全局变量和静态全局变量和局部变量和静态局部变量在初始化和未初始化时生存期和作用域的具体情况怎么样?
1
C#中普通类中的静态类成员不能自动实例化后调用,需要显式实例化?
2
关于指针全局变量和局部变量存储位置的问题
1
在可执行文件中data段、text段、rodata段都不存局部变量,那没有加载到内存的栈之前,局部变量到底存在哪呢?