当前位置:编程学习 > C#/ASP.NET >>

windows服务 内存泄漏问题

我写了一个C#的windwos服务,服务里面使用多线程。现在发现存在内存泄漏,但是又找不出原因。我在程序里面用gc强制回收内存也不起作用。我该咋个处理呢 windows服务 多线程 c# --------------------编程问答-------------------- 具体问题具体分析,恐怕你在这儿找不到答案。
不过可以用一些工具试试,比如 red gate ANTS 的一套东西 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 是不是有静态数组,hashtable之类,长期引用了一些对象?或者finalize线程被堵住了?
需要更多信息才知道是怎么回事。 --------------------编程问答-------------------- 大数据对象都要手动释放资源 --------------------编程问答-------------------- 是使用了一些静态数据,并不断的使用他们。
finalize线程被堵住了,这个不确定

大数据对象都要手动释放资源
咋个释放。GC.Collect();吗 --------------------编程问答-------------------- 一般GC.Collect()用于COM调用的时候,比如调用WORD,这时可能会占用大量内存,需要立刻回收。
Dispose用于一些网络,数据库资源的时候,原因也是上面的,用using会自动在最后调用dispose


Application.DoEvents使CPU交出控制权,让系统可以处理队列中的所有Windows消息,比如在大运算量循环内,加Application.DoEvents可以防止界面停止响应,因为winform的消息循环是一个线程来处理,那么假如你的某个操作比较耗时,那么消息处理得等你这个耗时操作做完了才能继续,而Application.DoEvents方法就是允许你在耗时操作的内部调用它,而去处理消息队列中的消息。像鼠标移动鼠标点击都是windows消息,如果耗时操作一直进行,那么界面就像死锁一样。
(耗时操作用的比较多) --------------------编程问答-------------------- 还有其他方法吗,windwos服务的多线程应该是在本地的不是网络的,多线程是写在一个类里面的,没有Dispose的方法
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,