C# 线程运行完之后自己会不会释放掉

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 线程运行完之后自己会不会释放掉相关的知识,希望对你有一定的参考价值。

Thread th = new Thread(new ThreadStart(SendFile));
th.Start();

线程运行完之后将自动终止,然后会由CLR来决定什么时候销毁来释放内存和其他资源,一般的说,当你的资源不够或有更高优先级的要求时,内存会被释放,以避免影响CPU性能。如果你实在不放心,用abort终止掉它吧!
th.Abort();
参考技术A C# 是面向对象语言,它自带GC(垃圾回收器),系统会在一定时间去检测,一些变量,对象如果长时间没用,它就会自动清除掉。

for循环和while循环的区别?

  1. 在开发中,如果明确循环的次数,使用for循环 ;不明确循环次数,使用while循环
  2. 从内存角度考虑,for循环的格式for(初始语句;条件语句;步长语句){循环体语句...},for循环结束之后,
  3. {}中的变量值会及时从内存中释放掉,不会消耗内存空间!while循环结束,还可以去访问变量值,不会立即从内存中
    释放掉,等待GC垃圾回收器(垃圾回收线程,也称为守护线程!)空闲时候回收!
  4. 开发中优先使用for循环,其次是while循环

以上是关于C# 线程运行完之后自己会不会释放掉的主要内容,如果未能解决你的问题,请参考以下文章

C# kill线程正常释放资源?

C#中using(...){...}的意思

在sql server 2000中进行内存的自动释放怎么实现?拜托各位了 3Q

c# 一个程序关闭,如果有前台线程还在运行,当前台线程运行完是不是会关闭?还是一直存在?

C#无法访问已释放的对象

对象的notify方法的含义和对象锁释放的三种情况