C#多线程内存占用的问题如何解决?

mcdjxiao 2009-12-20 01:57:32
我现在的程序由于是网络通讯需要监听 我现在 用的线程阻塞来监听 上线请求信息 以及下线 以及命令 开了3个线程
不是木马哈 。。。 也就是一个WHILE循环一直监听 内存占用局大 有什么好的解决方案没?
...全文
777 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyq627520 2010-12-29
  • 打赏
  • 举报
回复
都是什么回答啊
ziyan688999 2010-05-06
  • 打赏
  • 举报
回复
OYHGOD
Thr21ough 2009-12-20
  • 打赏
  • 举报
回复
up~
龙宜坡 2009-12-20
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 wartim 的回复:]
不知道你代码怎么写的,所以不好说
[/Quote]

是的!
关键代码贴出来瞅瞅!
wartim 2009-12-20
  • 打赏
  • 举报
回复
不知道你代码怎么写的,所以不好说
gbb21 2009-12-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zjh333 的回复:]
NET的性能一直是个问题, 你的对象占用的内存是不可控的,要想自已控制内存用Vc++或Delphi
[/Quote]
这个正是为了性能所以才预分配了内存好吧,你要喜欢可以把workspace的空间缩小。
icbc_ljt 2009-12-20
  • 打赏
  • 举报
回复
GC收集不行吗
ytc666 2009-12-20
  • 打赏
  • 举报
回复
适当sleep
zjh333 2009-12-20
  • 打赏
  • 举报
回复
NET的性能一直是个问题, 你的对象占用的内存是不可控的,要想自已控制内存用Vc++或Delphi
happyer_longlong 2009-12-20
  • 打赏
  • 举报
回复
采用 事件来编程,不用你循环去监听
wenbin 2009-12-20
  • 打赏
  • 举报
回复
若是你的数据比较大,另当别论,

单从线程开启来说,不会占用那么多内存,开启线程默认的堆大小是不大的。
可能是你程序中处理数据的时候,有内存没有释放。
xiaoyuchen3v 2009-12-20
  • 打赏
  • 举报
回复
学习了……
mcdjxiao 2009-12-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 goga21cn 的回复:]
引用楼主 mcdjxiao 的回复:
我现在的程序由于是网络通讯需要监听  我现在 用的线程阻塞来监听 上线请求信息   以及下线  以及命令 开了3个线程
不是木马哈  。。。 也就是一个WHILE循环一直监听  内存占用局大 有什么好的解决方案没?


是CPU占用率大还是内存占用率大?

CPU ,每次循环完Sleep一段时间。
内存,及时释放掉,但内存也不会即时释放掉的。
[/Quote]
是内存 大 运行就100多M
mcdjxiao 2009-12-20
  • 打赏
  • 举报
回复
有没有更好的通讯办法?
meadking 2009-12-20
  • 打赏
  • 举报
回复
这个问题....
只能sleep了哦...
龙宜坡 2009-12-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 mcdjxiao 的回复:]
我现在的程序由于是网络通讯需要监听  我现在 用的线程阻塞来监听 上线请求信息  以及下线  以及命令 开了3个线程
不是木马哈  。。。 也就是一个WHILE循环一直监听  内存占用局大 有什么好的解决方案没?
[/Quote]

是CPU占用率大还是内存占用率大?

CPU ,每次循环完Sleep一段时间。
内存,及时释放掉,但内存也不会即时释放掉的。
semify 2009-12-20
  • 打赏
  • 举报
回复
如果不是对性能要求非常高的话,可以每次while完sleep一下,比如sleep一秒,效果很明显。。。从前我这么干过
mcdjxiao 2009-12-20
  • 打赏
  • 举报
回复
自己定 等人回答

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧