COM与TCP,TCP与COM通讯问题[急]

longjun1627 2011-07-21 11:10:29
最近写了一个COM与TCP,TCP与COM的通讯程序,是用多线程来处理的

通讯过程:COM收到数据后转发给TCP,TCP再转发出去;或TCP收到数据转发给COM,COM再转发出去

程序一开始运行时,收发数据都没有问题,但运行几天后,发现CPU的使用率占用的越来越多,
而且时间越久占用的就越多,检查了程序,各个循环或可能耗时的地方也都Sleep(1)了,对COM缓存也进行了清空处理,
不知道是什么原因?
望各位高手指点一二,解决马上给分结贴,在线等……
先谢谢了……
...全文
171 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
longjun1627 2011-07-28
  • 打赏
  • 举报
回复
谢谢各位的耐心解答,我按上面所说的再重写了下,挂了几天了,正常中,再过些日子看看还会不会出现情况吧,
本计划昨天结帖的,忙了,给忘记了^_^
sdl2005lyx 2011-07-26
  • 打赏
  • 举报
回复
怪了,我以前做通信时候,刚开始也是你这种情况,采取的上述措施,问题基本都解决了,,,
longjun1627 2011-07-26
  • 打赏
  • 举报
回复
谢谢各位,以上各种方法基本上都试了,不行
但还是谢谢各位

再挂一天,明天结帖
zw_l_1989 2011-07-21
  • 打赏
  • 举报
回复
sleep不能解决所有问题
多线程同步操作 可以考虑用信号量 方式 阻塞线程
sdl2005lyx 2011-07-21
  • 打赏
  • 举报
回复
1、通讯类创建类全局缓冲区,尽量不要在发送、接收处理时临时分配心空间。
2、使用GC.Collect(),对不得已临时分配空间强制释放。
3、实现IDispose接口,显示调用Dispose接口,加速托管资源释放。
4、重写Object.Finalize 方法,理非托管资源。
sdl2005lyx 2011-07-21
  • 打赏
  • 举报
回复
1、通讯类创建类全局缓冲区,尽量不要在发送、接收处理时临时分配心空间。
2、使用GC.Collect(),对不得已临时分配空间强制释放。
3、实现IDispose接口,显示调用Dispose接口,加速托管资源释放。
4、重写Object.Finalize 方法,理非托管资源。
isjoe 2011-07-21
  • 打赏
  • 举报
回复
1、对于支持IDispose接口的类,你程序中很多类都是集成自他的,改用using的自释放机制。

2、检查是否有线程锁死的问题。。。
confidenceyu 2011-07-21
  • 打赏
  • 举报
回复
等高手
longjun1627 2011-07-21
  • 打赏
  • 举报
回复
自己顶一下

110,524

社区成员

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

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

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