1.托管资源
2.非托管资源
1.托管资源
托管资源是在堆上分配内存的对象, 比如类对象, 委托和事件
托管资源: 就像在图书馆内阅读, 会将书放到图书馆中
非托管资源: 就像把书借出图书馆, 自己必须主动归还, 否则别人无法使用这本书
2.非托管资源
非托管资源是CLR无法直接管理的资源
1).文件句柄
当程序打开一个文件时, 操作系统返回一个文件句柄, 程序通过这个文件句柄来操作文件

后果
a.文件被锁定: 他程序无法删除或修改这个文件
b.资源泄漏: 操作系统有最大文件句柄数限制
c.程序崩溃: 如果打开太多文件不关闭, 后续文件操作会失败
2).网络连接
当程序建立网络连接(如HTTP请求、数据库连接、Socket连接)时, 操作系统会分配网络资源

后果
a.端口耗尽: 一个程序只能打开有限数量的端口
b.连接泄漏: 服务器端认为连接仍然有效
c.性能下降: 网络资源无法重用
3).操作系统内核对象
a.Mutex(互斥锁)
b.Semaphore(互斥锁)
c.EventWaitHandle(事件)
d.进程
后果
a.内核资源泄漏: 操作系统内核内存被占用
b.对象泄漏: 命名的Mutex可能无法被其他进程正确清理
c.系统性能下降: 内核对象过多影响系统稳定性
4).GDI + 对象
a.GDI + 对象简介
在Windows图形界面编程中使用的图形资源
b.比如
- Bitmap(位图)
- Brush(画刷)
- Pen(画笔)
- Font(字体)
- Graphics(绘图上下文)