C#Winform程序运行慢

时间:2023-02-20 23:18:04
C#开发的Winform程序,刚打开时运行还比较快,时间稍久点就运行很慢了.我也查过,没有什么资源引用没有释放的啊,是原因呢

22 个解决方案

#1


有Timer么?

#2


程序运行起来,监视一下内存。或者用ants profile测试一下。

#3


别人的还是你自己的   代码

#4


是不是数据库越来越大,打开、查找、索引等操作会相对慢了。或者变量太多了,没释放!

#5


我觉得也是  winform怎么提高加载速度

#6


可能是数据请求产次数太频繁!

#7


C#Winform程序运行慢

#8


界面上的控件比较多了就发现加载窗体好慢。。。 等待学习

#9


此问题无解,请给出详细信息

#10


GC.Collect()
这个试下 强制程序释放过期变量

#11


没代码分析,都只能是猜猜了

#12


有没有关系到数据库

#13


using
资源的释放
GC
检查CPU等消耗情况

#14


窗体的控件,图片大小等

#15


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();
            };
}

#16


加个格式:

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();
  };
}

#17


绝对纯粹是因为你程序没处理好

#18


数据库请求都很快,也没发现哪里有资源没有释放的.

#19


可能是资源那里没有释放

#20


控件多少,窗体中有无较大图片,以及窗体第一次加载时是否从数据库查询数据都有可能影响加载速度。

#21


可能是数据库的关系

#22


我也遇到类似的情况,不过只是内存占有率变高了,而且没有访问数据库,求解

#1


有Timer么?

#2


程序运行起来,监视一下内存。或者用ants profile测试一下。

#3


别人的还是你自己的   代码

#4


是不是数据库越来越大,打开、查找、索引等操作会相对慢了。或者变量太多了,没释放!

#5


我觉得也是  winform怎么提高加载速度

#6


可能是数据请求产次数太频繁!

#7


C#Winform程序运行慢

#8


界面上的控件比较多了就发现加载窗体好慢。。。 等待学习

#9


此问题无解,请给出详细信息

#10


GC.Collect()
这个试下 强制程序释放过期变量

#11


没代码分析,都只能是猜猜了

#12


有没有关系到数据库

#13


using
资源的释放
GC
检查CPU等消耗情况

#14


窗体的控件,图片大小等

#15


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();
            };
}

#16


加个格式:

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();
  };
}

#17


绝对纯粹是因为你程序没处理好

#18


数据库请求都很快,也没发现哪里有资源没有释放的.

#19


可能是资源那里没有释放

#20


控件多少,窗体中有无较大图片,以及窗体第一次加载时是否从数据库查询数据都有可能影响加载速度。

#21


可能是数据库的关系

#22


我也遇到类似的情况,不过只是内存占有率变高了,而且没有访问数据库,求解