首页 新闻 会员 周边 捐助

C#里的Socket对象是属于托管资源还是非托管资源?

0
悬赏园豆:10 [待解决问题]

.net里的Socket对象是属于托管资源还是非托管资源?
同样的Semaphore这个是属于托管还是非托管资源呢?

这些类是包装操作系统资源的,我一直理解为这些是非托管资源,但是在.net这些类应该已经对系统资源进行了封装了,.net应该是知道如何对这些类进行回收的,应该属于托管资源。

也就是说我们如何判断一个对象是托管资源还是非托管资源呢?(感觉有些类虽然代表着系统资源,一眼看过去会认为是非托管资源,但已经其实被封装好了,.net应该是知道如何对其进行回收的,应该是托管资源。)

或者说我们编程中哪些是属于非托管资源的,能举几个例子吗?

a14907的主页 a14907 | 初学一级 | 园豆:157
提问于:2020-04-18 16:16
< >
分享
所有回答(2)
0

非托管:SerialPort 需要手动释放..
这个不清楚,mark坐等大佬回答

猝不及防 | 园豆:2878 (老鸟四级) | 2020-04-20 11:04
0

非托管
非托管

.net知道如何回收这些资源,但是不知道何时回收,一般情况下非托管资源可以由.net自动回收,但是有些资源比较少,需要手动自动回收。

如何判断对象是不是托管资源?
全部资源由CLR管理的是托管资源,其他的不是,简单说一个对象如果保存了非托管资源就是非托管资源。基本只能靠文档来分辨是不是。当然,如果一个类实现了IDospose接口,就需要确认一下是不是非托管资源。

拓拓 | 园豆:1055 (小虾三级) | 2020-04-20 13:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册