zoukankan      html  css  js  c++  java
  • Handle unmanaged code in managed c# with the help of using statement

     
    http://stackoverflow.com/questions/3433197/what-exactly-are-unmanaged-resources

    Managed resources basically means "managed memory" that is managed by the garbage collector. When you no longer have any references to a managed object (which uses managed memory), the garbage collector will (eventually) release that memory for you.

    Unmanaged resources are then everything that the garbage collector does not know about. For example:
    •Open files
    •Open network connections
    •Unmanaged memory
    •In XNA: vertex buffers, index buffers, textures, etc.

    Normally you want to release those unmanaged resources before you lose all the references you have to the object managing them. You do this by calling Dispose on that object, or (in C#) using the using statement which will handle calling Dispose for you.

    If you neglect to Dispose of your unmanaged resources correctly, the garbage collector will eventually handle it for you when the object containing that resource is garbage collected (this is "finalization"). But because the garbage collector doesn't know about the unmanaged resources, it can't tell how badly it needs to release them - so it's possible for your program to perform poorly or run out of resources entirely.

    If you implement a class yourself that handles unmanaged resources, it is up to you to implement Dispose and Finalize correctly.
  • 相关阅读:
    后台跨域(CORS)
    golang 处理TCP粘包问题
    使用axios 发送ajax 下载文件
    Golang:在Redigo的RedisPool上选择DB
    puppeteer添加代理
    mongodb 权限操作
    alpine下安装icu-dev
    golang 导出CSV文件中文乱码的问题
    shell笔记
    Convert rune to int
  • 原文地址:https://www.cnblogs.com/kingangWang/p/2152869.html
Copyright © 2011-2022 走看看