首页 / 知识
关于.net:是什么阻止了C#中的线程被收集?
2023-04-16 11:57:00

What prevents a Thread in C# from being Collected?
在.NET中,此代码之后,什么机制阻止
是的,可以安全地假设某些东西引用了该线程,我只是在徘徊什么。 由于某些原因,Reflector不会向我显示 只要线程正在运行,运行时就会保留对该线程的引用。只要有人仍然保留该参考,GC就不会收集它。 这取决于线程是否正在运行。如果您只是创建了Thread对象而没有启动它,则它是一个普通的托管对象,即有资格使用GC。一旦启动线程,或者为已经运行的线程(GetCurrentThread)获取Thread对象,就会有些不同。现在,"暴露对象"(托管线程)在CLR中保持强引用,因此您始终会获得相同的实例。当线程终止时,将释放此强引用,并且在您没有对Thread的其他任何引用(现已死亡)时,将立即收集托管对象。 这是垃圾收集器的硬连线功能。不收集正在运行的线程。 但是要注意的重要一点-如果您的线程标记为IsBackground = True,则不会阻止整个进程退出 好吧,可以肯定地假设,如果某个线程正在某个有引用的地方运行,那足以阻止垃圾回收吗? 将新线程分配给本地字段?
垃圾回收会收集不是引用的所有内容,因此在您的代码中,没有字段/变量引用该线程,因此将对其进行收集。 |
最新内容
相关内容
linux查询线程命令?
linux查询线程命令?,系统,第一,线程,命令,进程,代码,分时,软件,选项,界面,如何在Linux中查看进程的多线程1、Linux系统查看某个进程的线程数可linux线程查询命令?
linux线程查询命令?,系统,第一,线程,命令,软件,名称,信息,进程,选项,方法,Linux系统如何查看进程的线程数1、第一种方法:top命令法首先执行toplinux线程查询命令?
linux线程查询命令?,系统,第一,线程,命令,软件,名称,信息,进程,选项,方法,Linux系统如何查看进程的线程数1、第一种方法:top命令法首先执行toplinux多线程下载命令?
linux多线程下载命令?,软件,工具,平台,中心,系统,代理,网络,网站,手机,官方网站,从linux服务器中下载或上传文件wget是linux下一个从网络上自linux无效对象的命令?
linux无效对象的命令?,软件,系统,单位,网络,管理,术语,检测,电脑,环境,风险,linux疑问:普通用户的ifconfig命令无法执行,如何解决?建议这个操linux断开线程命令?
linux断开线程命令?,系统,状态,工作,代码,线程,入口,网络,管理,名称,命令,linux下C中怎么让才能安全关闭线程方法:在线程入口函数中,调用returnlinux停止线程的命令?
linux停止线程的命令?,系统,软件,代码,产品,进程,第一,管理,生产,通信,工具,linux下nginx停止命令1、首先,连接相应linux主机,进入到linux命令行linux超线程查看命令?
linux超线程查看命令?,系统,第一,信息,软件,命令,数据,工具,实时,界面,个数,Linux查看CPU详细信息这里我先介绍一个文件。它就是/proc目录文件linux查看多线程命令?
linux查看多线程命令?,系统,第一,线程,地址,数据,进程,命令,名称,软件,情况,如何查看linux服务器的cpu数量,内核数,和cpu线程数如何查看linuxlinux执行线程命令?
linux执行线程命令?,系统,工作,线程,软件,服务,管理,信息,环境,名称,命令,linux下线程属性常用操作有哪些1、linux系统常用操作命令linux系统linux线程操作命令?
linux线程操作命令?,系统,工作,时间,代码,线程,信息,第一,命令,函数,操作,linux下线程属性常用操作有哪些linux系统常用操作命令linux系统常用linux下载命令多线程?
linux下载命令多线程?,系统,单位,概念,数据,线程,进程,产品,地址,代码,状态,谁有linux下多线程库的源码啊,要确实可用的,确实可以免费下载的,