none
C# 内存释放的问题 RRS feed

  • 问题

  • 最近做了个winform程序,里面有三个线程,放在服务器上运行,发现内存用的越来越多,当点击最小化后内存立即释放。

    .net GC不会有问题吧?
    2009年12月29日 0:43

答案

全部回复

  • 应该是你的线程执行的问题,你的线程是用来做什么的?
    怎么写的?
    http://www.zu14.cn/2008/11/01/net_program_memory/


    努力+方法=成功
    2009年12月29日 1:07
  • 如果是在线程中用到了非托管资源应该及时将其释放,很多类都实现了IDsiposable接口 你可以用using

    同时winform当你启动的时候就会占用很多内存 但是最小化后再次打开内存就会减少很多
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    2009年12月29日 1:22
    版主
  • 应该是你的线程执行的问题,你的线程是用来做什么的?
    怎么写的?
    http://www.zu14.cn/2008/11/01/net_program_memory/


    努力+方法=成功

    1个用来连接wcf服务。
    1个用来连接数据库。
    • 已标记为答案 chenzhit 2009年12月29日 2:34
    2009年12月29日 1:51
  • 如果是在线程中用到了非托管资源应该及时将其释放,很多类都实现了IDsiposable接口 你可以用using

    同时winform当你启动的时候就会占用很多内存 但是最小化后再次打开内存就会减少很多
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~

    那些属于非托管资源?
    数据库连接属于什么资源?数据库连接我都关闭的。
    2009年12月29日 1:53
  • 数据库连接只要关闭了应该就没问题的

    比如你用Image类通过FromFile 从图片文件读取 这里的图片文件就属于非托管的资源 如果这个image操作完后你没有释放 则会有可能出现这种情况

    文件流,数据库的连接,系统的窗口句柄,打印机资源 这些都属于非托管资源
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    2009年12月29日 2:11
    版主
  • 明白,谢谢!
    2009年12月29日 2:33