内存溢出的问题 这个内存的占用量会很大吗?我假设你的那句代码是在timer的tick时执行,自己做了个例子,也就大概10秒钟左右上涨几K而已啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 内存溢出 只有个原因 就是间隔时间太短 重复做一件事最好不要在timer事件里面不断实例化对象timer事件里无休止执行的时候 间隔不要太短 lorenliu:这个内存的占用量会很大吗?我假设你的那句代码是在timer的tick时执行,自己做了个例子,也就大概10秒钟左右上涨几K而已啊这个只是一个线程 而且是个服务程序 要求长时间启动的-------------------------------------------------------------------------------------------tmxk2002:贴你的代码,估计又是作死的往静态变量里塞东西,然后不去释放。 再大的内存都会爆掉。是个状态信息 始终需要更新 这个变量下次使用时还要用 怎么释放呢--------------------------------------------------------------------------------------------sckoo:内存溢出 只有个原因 就是间隔时间太短 重复做一件事 最好不要在timer事件里面不断实例化对象 timer事件里无休止执行的时候 间隔不要太短我本来是在一个线程里做的 用的是Thread.sleep 做的间隔 但是本身要求实时性强 间隔短 就这点东西 没有什么隐藏的 只是没有前面那个例子容易说明 放在线程里执行的 中间thread.sleep(50); currenState = GetState(ID);if (currenState != lastState){ State_Change();}lastState = currenState;//简单说明一下就是监听一个状态改变 State_Change里干了什么?然后你这些变量会每次执行完后释放掉不? State_Change(); 被我注释掉了 还是同样的情况不是那的问题 如果其它地方都没问题的话,只能解释为每次 DateTime.Now.ToLongTimeString();调用时都生成了一个String对象,不同值的String对象要占用不同的内存空间。所以内存就会一直往上涨但是我自己不大认为是这个原因,应该还是别的地方出了什么问题 我自己分析的lastState和currenState这两个变量始终在赋值 而且c#里 对于string类型 也是引用每次 = 操作 就是new了一个string 但是老的string 没有释放这个是我自己的看法,还请高手多多指教 tmxk2002 :你给的代码太少,不要你想着认为这里就给这里。如果你开了多线程,很有可能导致内存泄漏问题。 特别是把线程压到系统线程池里的操作。帖子内已经举例说明了C# form窗体里加个定时器 执行一句 “time = DateTime.Now.ToLongTimeString();”(time为成员属性) 随着运行 windows任务管理器里的内存占用量一直上升 怎么才能控制内存占用量呢?先把这个解决了吧 如果单纯是这样,不可能会出现内存泄漏的问题。timer很多人在用,没有人说它会内存泄漏,一个对变量赋值也是最基本的,Now的ToLongTimeString是不可能有内存泄漏的,肯定是与之相关的其他地方导致的,把怎么启用timer,timer运行的代码都贴一下呗,哪怕把你那个form的代码全贴出来都行啊,断章取义的估计帮不上你了。呵呵 C# 文本框验证信息的问题 在服务器本地创建文件的权限问题,,用net use 远程连接 能不能把PPStream嵌入到winform的一个panel里,怎么做? 呜呼~~~用C#2005做的Winform,各控件在XP里面的造型跟WIN98一样 关于数据绑定的小问题 急!!c#制作一个石头剪子布的程序 请教C#下UDP接收数据解包的问题? 为什么C# MVC 模型验证没反应啊 高手请进! 如何在一个dos程序里打开一个文件并赋给一个变量? 导出树到Excel以树型显示,C#的写法 求一匹配域名的正则表达试!急,谢谢大家
这个内存的占用量会很大吗?我假设你的那句代码是在timer的tick时执行,自己做了个例子,也就大概10秒钟左右上涨几K而已啊这个只是一个线程 而且是个服务程序 要求长时间启动的-------------------------------------------------------------------------------------------
tmxk2002:
贴你的代码,估计又是作死的往静态变量里塞东西,然后不去释放。
再大的内存都会爆掉。是个状态信息 始终需要更新 这个变量下次使用时还要用 怎么释放呢
--------------------------------------------------------------------------------------------
sckoo:
内存溢出 只有个原因 就是间隔时间太短 重复做一件事
最好不要在timer事件里面不断实例化对象
timer事件里无休止执行的时候 间隔不要太短我本来是在一个线程里做的 用的是Thread.sleep 做的间隔 但是本身要求实时性强 间隔短
currenState = GetState(ID);
if (currenState != lastState)
{
State_Change();
}
lastState = currenState;
//简单说明一下就是监听一个状态改变
然后你这些变量会每次执行完后释放掉不?
不是那的问题
每次 = 操作 就是new了一个string 但是老的string 没有释放这个是我自己的看法,还请高手多多指教
你给的代码太少,不要你想着认为这里就给这里。如果你开了多线程,很有可能导致内存泄漏问题。
特别是把线程压到系统线程池里的操作。帖子内已经举例说明了
C# form窗体里加个定时器 执行一句 “time = DateTime.Now.ToLongTimeString();”(time为成员属性)
随着运行 windows任务管理器里的内存占用量一直上升
怎么才能控制内存占用量呢?先把这个解决了吧
把怎么启用timer,timer运行的代码都贴一下呗,哪怕把你那个form的代码全贴出来都行啊,断章取义的估计帮不上你了。呵呵