string SystemDate;
为什么我的程序运行时内存一直在增加,每过一会内存会增加20K左右,代码如下:string SystemTime;
string SystemWeek;
private void timer1_Tick(object sender, EventArgs e)
{
SystemDate   = DateTime.Today.ToString("yyyy-MM-dd");
SystemTime = DateTime.Now.ToString("HH:mm:ss");
SystemWeek    = DateTime.Today.DayOfWeek.ToString();
//状态栏添加时间显示
statusBar1.Panels[0].Text = SystemDate;
statusBar1.Panels[1].Text = SystemTime;
foreach (MessageDataSet.MessageDataTableRow messageRow in common.Message.MessageDataTable)
{
        statusBar1.Panels[2].Text = messageRow.Id
}}

解决方案 »

  1.   

    帮你写一段代码,同样是你这样的效果
    //获取日期
    string[] weekNames=new string[]{"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
    string datestr="今天是: "+DateTime.Now.Year.ToString() + "年" + DateTime.Now.Month.ToString()+"月" + DateTime.Now.Day.ToString()+"日  " + weekNames[(int)DateTime.Now.DayOfWeek]+"   ";//获取时间
    int hour=DateTime.Now.Hour;
    int min=DateTime.Now.Minute;
    int sec=DateTime.Now.Second;string timestr = (hour>9)?hour.ToString():"0"+hour.ToString() + ":" + (min>9)?min.ToString():"0" + min.ToString(); + ":" + (sec>9)?sec.ToString():"0"+sec.ToString();//更新状态栏
    tatusBarPanel.Text= timestr;
      

  2.   

    个人认为 
    foreach (MessageDataSet.MessageDataTableRow messageRow in common.Message.MessageDataTable)
    {
            statusBar1.Panels[2].Text = messageRow.Id
    }
    创建了个名为messageRow 的MessageDataSet.MessageDataTableRow 实例,这会在内存中开辟空间来存储的, 而且是每隔一段时间执行一次,内存会一直增加 直到程序退出
      

  3.   

    试试这样 
    foreach (MessageDataSet.MessageDataTableRow messageRow in common.Message.MessageDataTable)
    {
            statusBar1.Panels[2].Text = messageRow.Id
            messageRow=null;//没有试过 不知道行不行}}
      

  4.   

    =null 好象是不行 messageRow只读 建议你把思路改变下 不要在timer里运行foreach
      

  5.   

    我也遇到同样的问题,不过我用定时器来做通讯,不停的new一些字节,接收的时候也new了一些字节,内存不断的增加!!!!!!