• 托管与非托管


      这里说说自己对托管和非托管的认识。

    一:从字面上看,托管就是委托别人管理。就像你委托保姆做饭,打扫卫生等。你不用亲力亲为的去做,但是享受了这些服务。非托管嘛,就是你要亲力亲为了。是个很勤快的人,什么都得关心。

    二:在.NET FRAMEWORK中,托管就是把事情留给CLR(公共语言运行时)去做,这个是CLR自己帮你做的,你根本不用关心。他帮你做了哪些呢?有类型安全检查,内存管理,垃圾回收等。你可能看到这些抽象的名字,不知道他做了什么。我这里只讲一下内存管理。你要是接触过C++,你可能知道,C++里有指针,他可以直接操作内存的。而在C#里,没有了指针,你不能直接操作内存,而是间接的。这个间接是怎么实现的呢?他就是通过CLR。什么是非托管呢?就是你自己去操作内存,不用CLR来插一脚。现在.net里的语言一般是托管语言,你在里面编程,编译后就成了托管模块。而C++是非托管语言。

    三:但是托管模块中也可能有非托管的内容。非托管的内容,比如WINDOWS API,非托管COM等。你在.NET环境中,引用WINDOWS API,非托管COM,就会导致托管模块中有非托管模块了。

    四:托管的内容,要通过CLR和windows交流。而非托管的内容可以直接和windows交流。

  • 相关阅读:
    C# linq根据属性分组,并累加计算
    AR模板分组显示(C#打印)
    显示单据信息(类似打印)
    C#同步方法中调用异步方法
    win10 Git安装或者使用出现128问题
    简单的分页查询实现
    数据库批量插入【数据库】
    VideoView
    音乐播放
    画画板案例
  • 原文地址:https://www.cnblogs.com/doosmile/p/1890108.html
Copyright © 2020-2023  润新知