`
lxy7230512
  • 浏览: 5497 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

托管资源和非托管资源

阅读更多
托管资源和非托管资源这个要从内存回收上来讲,首先一个点很明确:托管资源,.net垃圾回收器自动回收,非托管资源,垃圾回收期没法自动回收;
另外一点,托管资源由.net核心管理创建,非托管资源是由.net核心调用其他的接口创建,.net无法控制,例如active控件,画笔、画刷。这些都是.Net调用系统接口创建的,它管不着,只能由用户自已释放。
最后,.Net内核封装了的,能够或者有权限自动释放的就是托管资源;如果是.Net调用外部资源,无法自动释放的就是非托管资源。
分享到:
评论

相关推荐

    详解C# 托管资源和非托管资源

    在.NET框架中,C#程序中的资源分为两类:托管资源和非托管资源。理解这两类资源的区别和管理方式是编写高效、可靠代码的关键。 **托管资源**是指由.NET运行库(CLR,Common Language Runtime)自动管理的资源,主要...

    c#中的非托管资源释放 (Finalize和Dispose)

    ### C#中的非托管资源释放 (Finalize和Dispose) 在深入了解`Finalize`与`Dispose`之前,我们首先需要理解两个基本概念:托管资源与非托管资源。 #### 托管资源与非托管资源 1. **托管资源**指的是由.NET运行时...

    超详细解析托管代码与非托管代码以及dll调用.zip_托管代码_非托管

    3. 错误处理:托管代码和非托管代码的错误处理机制不同,需要适当地转换异常和错误信息,以确保两者之间的兼容性。 4. 平台兼容性:非托管DLL可能依赖特定的操作系统或硬件,因此在跨平台项目中需谨慎使用。 总结...

    带你复习c# 托管和非托管资源

    本文以c# 托管和非托管资源为主题,详细介绍了托管资源和非托管资源的相关知识点,帮助读者更好地理解和学习。 一、c# 托管资源 c# 托管资源是指在 .NET 平台上运行的资源,它们由公共语言运行时 (CLR) 管理。托管...

    .NET+AE开发中常见几种非托管对象的释放

    在.NET框架中,内存管理主要分为两种类型:托管资源和非托管资源。托管资源由.NET运行时(CLR)通过垃圾回收机制自动管理;而非托管资源,如COM对象、文件句柄等,则需要开发者手动管理其生命周期。 #### 二、非...

    .net非托管资源的回收方法

    当这个参数为true时,表示应该同时释放托管资源和非托管资源;当为false时,表示只需要释放非托管资源。 2. 在IDisposable接口的Dispose方法中,首先调用Dispose(true),然后调用GC.SuppressFinalize方法以避免调用...

    托管 vs 非托管

    例如,通过托管C++(Managed Extensions for C++),开发者可以在C++项目中同时使用托管和非托管代码,这使得在已有C++代码基础上迁移到.NET平台成为可能。托管C++允许在C++中使用.NET特性,如托管类、接口和属性,...

    纯C# 托管与非托管DLL注入

    非托管DLL可能包含系统API调用或其他特定于平台的函数,对硬件和系统资源有更直接的访问权限。 二、C# DLL注入的基本原理 在C#中实现DLL注入,主要涉及以下步骤: 1. 创建DLL:首先,你需要编写一个包含注入函数...

    C#中的垃圾回收机制

    垃圾回收机制可以分为两种类型:托管资源和非托管资源。托管资源是指由.NET Framework管理的资源,如字符串、数组等,而非托管资源是指由操作系统管理的资源,如文件句柄、网络连接等。 在C#中,实现IDisposable...

    托管代码与非托管代码

    ### 托管代码与非托管代码详解 #### 一、托管代码的概念与优势 托管代码是一种新型的技术,尤其在...总之,托管代码与非托管代码各自具有不同的特点和应用场景,选择哪种类型的代码取决于具体的开发需求和技术背景。

    非托管代码回调方法的实现

    5. **安全释放**:在非托管代码执行完毕后,确保释放任何分配的资源,例如,解除固定指针并确保非托管函数不再调用已释放的对象。 举例来说,假设有一个非托管API,它接受一个回调函数来处理特定事件: ```csharp ...

    C#实现非托管资源DLL的装载与卸载

    C#实现非托管资源DLL的装载与卸载封装类。

    非托管字符串和托管字符串的转换

    2. **使用SafeHandle或CriticalHandle**:对于更复杂的资源管理,可以使用这些类来封装非托管资源,它们提供了一种更安全的方式进行转换。 #### .NET到C++(托管到非托管) 1. ** StringBuilder**: 在C#中,可以...

    C#、托管C++、非托管C++编程

    在IT行业中,C#、托管C++和非托管C++是三种不同的编程语言或编程模式,它们各自有其特点和用途。在这个特定的场景中,我们讨论的是如何将非托管C++编写的加密算法,通过托管C++进行封装,最终在C#应用程序中使用。 ...

    非托管动态库调用

    总之,`System.Runtime.InteropServices` 是 .NET 平台中进行非托管调用的核心工具集,通过它,开发者可以充分利用现有的非托管资源,同时保持托管代码的高级特性和安全性。熟练掌握这一部分知识对于深入理解 .NET ...

    Extern调用非托管代码

    在.NET框架中,C#是一种高级的、类型安全的编程语言,它主要设计用于托管环境,这意味着它依赖于.NET框架的运行时来处理...理解并正确使用这些技术,可以帮助开发者充分利用现有的非托管资源,扩展.NET应用程序的功能。

    C#三代内存管理.ppt

    在 .NET 中,内存资源可以分为托管资源和非托管资源。托管资源是由 CLR 管理的,例如 Class 对象、数组、字符串等;非托管资源是由操作系统管理的,例如文件句柄、socket 等。托管资源可以再分为托管栈和托管堆。...

    托管平台与非托管的互操作

    【托管平台与非托管的互操作】是指在编程中,如何让使用托管代码(如C#)的应用程序与非托管代码(如C++)...通过这些步骤和注意事项,开发者可以在托管和非托管代码之间建立起桥梁,实现跨语言的组件复用和系统集成。

Global site tag (gtag.js) - Google Analytics