c# windows 服务程序 内存越来越大

private static System.Timers.Timer timer= new System.Timers.Timer();
private static int inTimer = 0;
private static int time = 1;
public Service1()
{
InitializeComponent();

        timer.Interval = time * 60 * 1000;//默认每1分钟执行一次
        timer.Enabled = true;
        timer.Elapsed += new System.Timers.ElapsedEventHandler(TimedEvent);
        timer.AutoReset = true;

    }
            private void TimedEvent(object sender, System.Timers.ElapsedEventArgs e)
    {
                 读取表数据,
                     循环修改,
                // GC.Collect();
        //GC.WaitForPendingFinalizers();
            }

3个回答

把实际要做的事情再做一个程序,命令行传参数给它,每执行一次就退出。

qtvb1987
qtvb1987 恩,加了,之前没加GC.Collect(); GC.WaitForPendingFinalizers();
一年多之前 回复
caozhy
每个人都有一个梦才不会孤单的说话就有天堂 回复qtvb1987: 就是结束
一年多之前 回复
qtvb1987
qtvb1987 退出啥意思?
一年多之前 回复

内存会越来越大?我的怎么没有呀,而且我的数据比你的大多了,很可能是你用的一些变量没有释放导致了,要多用using;你要是觉得有问题可以写个控制台程序,然后使用windows自带的定时任务执行

qtvb1987
qtvb1987 嗯,现在加了 GC.Collect(); 好像好了
一年多之前 回复

内存越来越大,是不是你读取数据和修改的数据集什么的没有清空

qtvb1987
qtvb1987 就是获取一些接口返回的string 啥的会产生些,还有就是读取数据库的
一年多之前 回复
qtvb1987
qtvb1987 嗯,DataSet 取,然后分条修改之前没加 GC.Collect();
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题