当前位置:编程学习 > C#/ASP.NET >>

C#Winform程序运行慢

C#开发的Winform程序,刚打开时运行还比较快,时间稍久点就运行很慢了.我也查过,没有什么资源引用没有释放的啊,是原因呢 --------------------编程问答-------------------- 有Timer么?
--------------------编程问答-------------------- 程序运行起来,监视一下内存。或者用ants profile测试一下。 --------------------编程问答-------------------- 别人的还是你自己的   代码 --------------------编程问答-------------------- 是不是数据库越来越大,打开、查找、索引等操作会相对慢了。或者变量太多了,没释放! --------------------编程问答-------------------- 我觉得也是  winform怎么提高加载速度 --------------------编程问答-------------------- 可能是数据请求产次数太频繁! --------------------编程问答-------------------- --------------------编程问答-------------------- 界面上的控件比较多了就发现加载窗体好慢。。。 等待学习 --------------------编程问答-------------------- 此问题无解,请给出详细信息 --------------------编程问答-------------------- GC.Collect()
这个试下 强制程序释放过期变量 --------------------编程问答-------------------- 没代码分析,都只能是猜猜了 --------------------编程问答-------------------- 有没有关系到数据库 --------------------编程问答-------------------- using
资源的释放
GC
检查CPU等消耗情况 --------------------编程问答-------------------- 窗体的控件,图片大小等 --------------------编程问答-------------------- string GetTickCount()
{
int result = Environment.TickCount & Int32.MaxValue;
            TimeSpan tmp = new TimeSpan(Convert.ToInt64(Convert.ToInt64(result) * 10000));
            //string workTime = tmp.Days + " 天 " + tmp.Hours + " 时 " + tmp.Minutes + " 分 " + tmp.Seconds + " 秒";
            string workTime = string.Format("{0:00}", tmp.Days) + " 天 " + string.Format("{0:00}", tmp.Hours) + " 时 " + string.Format("{0:00}", tmp.Minutes) + " 分 " + string.Format("{0:00}", tmp.Seconds) + " 秒";
            return workTime;
}
//窗体的Load里面:
private void LoginUI_Load(object sender, EventArgs e)
{
MethodInvoker mi = new MethodInvoker(delegate { lblMsg.Text = "电脑已工作------:" + Helper.GetTickCount(); });
timer1 = new System.Timers.Timer();
            timer1.Interval = 1000;
            timer1.Enabled = true;
GC.Collect()
timer1.Elapsed += delegate
            {
                this.lblMsg.Invoke(mi);
                GC.Collect();
            };
} --------------------编程问答-------------------- 加个格式:

string GetTickCount()
{
int result = Environment.TickCount & Int32.MaxValue;
  TimeSpan tmp = new TimeSpan(Convert.ToInt64(Convert.ToInt64(result) * 10000));
  //string workTime = tmp.Days + " 天 " + tmp.Hours + " 时 " + tmp.Minutes + " 分 " + tmp.Seconds + " 秒";
  string workTime = string.Format("{0:00}", tmp.Days) + " 天 " + string.Format("{0:00}", tmp.Hours) + " 时 " + string.Format("{0:00}", tmp.Minutes) + " 分 " + string.Format("{0:00}", tmp.Seconds) + " 秒";
  return workTime;
}
//窗体的Load里面:
private void LoginUI_Load(object sender, EventArgs e)
{
MethodInvoker mi = new MethodInvoker(delegate { lblMsg.Text = "电脑已工作------:" + Helper.GetTickCount(); });
timer1 = new System.Timers.Timer();
  timer1.Interval = 1000;
  timer1.Enabled = true;
GC.Collect()
timer1.Elapsed += delegate
  {
  this.lblMsg.Invoke(mi);
  GC.Collect();
  };
}

--------------------编程问答-------------------- 绝对纯粹是因为你程序没处理好 --------------------编程问答-------------------- 数据库请求都很快,也没发现哪里有资源没有释放的. --------------------编程问答-------------------- 可能是资源那里没有释放 --------------------编程问答-------------------- 控件多少,窗体中有无较大图片,以及窗体第一次加载时是否从数据库查询数据都有可能影响加载速度。 --------------------编程问答-------------------- 可能是数据库的关系 --------------------编程问答-------------------- 我也遇到类似的情况,不过只是内存占有率变高了,而且没有访问数据库,求解
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,