zoukankan      html  css  js  c++  java
  • C# 内存释放


    DestImage.Dispose();
    DestImage = null;
    HOperatorSet.GenImageInterleaved(out DestImage, pBufferColorImage, "bgr",
    ImageWidth, ImageHeight, -1, "byte", 0, 0, 0, 0, -1, 0);
    在C#中图像变量,在再次使用前,一定要先检查存在再释放,否则内存会急剧增长到GCC来释放,这时会引起一系列问题。我提供一个函数模板
    /// <summary>
    /// 释放当前对象,变量置为null
    /// </summary>
    public static void FreeObject<T>(ref T Obj) where T : class, IDisposable
    {
    if (Obj != null) Obj.Dispose();
    Obj = null;
    }

    FreeObject<tDataTable>(ref mBoardTable);
    FreeObject<BindingSource>(ref mBoardSource);
    FreeObject<tDataTable>(ref mProgTable);
    FreeObject<BindingSource>(ref mProgSource);
    //
    FreeObject<tDataTable>(ref mUpSideTable);
    FreeObject<BindingSource>(ref mUpSideSource);
    FreeObject<tDataTable>(ref mDownSideTable);
    FreeObject<BindingSource>(ref mDownSideSource);
    //
    FreeObject<tDataTable>(ref mUpSideSubTable);
    FreeObject<BindingSource>(ref mUpSideSubSource);
    FreeObject<tDataTable>(ref mDownSideSubTable);
    FreeObject<BindingSource>(ref mDownSideSubSource);
    这样释放对象,代码少,代码可读性强。

  • 相关阅读:
    JPA-基本注解
    响应式、自适应式
    Spring boot传值注意事项
    Angular与Vue
    Java 时间转换
    SpringBoot 上传读取图片 巨坑
    前后端分离之 文件上传
    System.nanoTime与System.currentTimeMillis
    sqlserver 新增子段有默认值
    json转换
  • 原文地址:https://www.cnblogs.com/QuincyYi/p/12880725.html
Copyright © 2011-2022 走看看