方法一:    void Application_BeginRequest(object sender, EventArgs e)
    {
        Application["StartTime"] = System.DateTime.Now;
    }    void Application_EndRequest(object sender, EventArgs e)
    {
        System.DateTime StartTime = (System.DateTime)Application["StartTime"];
        System.DateTime EndTime = System.DateTime.Now;
        System.TimeSpan RunTime = EndTime - StartTime;
        Application["RunTime"] = RunTime.TotalSeconds;
    }这个不行,我在用户控件中获取
Label1.Text = @"Processed in " + Application["RunTime"].ToString() + " second(s)";老报错。换成Cache和Session也一样。方法二:
在要获取页面执行时间的页面的Page_Load事件中
DateTime StartTime = System.DateTime.Now;
.....其他语句
DateTime EndTime = System.DateTime.Now;
TimeSpan RunTime = EndTime - StartTime;这个方法郁闷的是我没有其它语句要写啊。计算出来的时间老是0。
有没哪位朋友有简单有效的解决方法呀????20分喔~~!

解决方案 »

  1.   

    试试Stopwatch
                Stopwatch stw = new Stopwatch();
                stw.Start();
                代码
                stw.ElapsedMilliseconds.ToString();
                stw.Reset();
      

  2.   

    才20真小气。快要升星星了,少了我也要了
    TimeSpan stime = DateTime.Now.TimeOfDay; 
    执行代码
    TimeSpan etime = DateTime.Now.TimeOfDay; 
    TimeSpan t = etime.Subtract(stime); 
    runtime.Text = t.TotalMilliseconds.ToString();
      

  3.   

    svevx() 这位同志是换汤不换药啊不行不行给1分吧。
      

  4.   

    winner2050(winner) 偶小气是小气了一点因为偶分少嘛。。不过你的代码和svevx() 同志的效果差不多呀我没执行代码,直接        TimeSpan StratTime = DateTime.Now.TimeOfDay;
            TimeSpan EndTime = DateTime.Now.TimeOfDay;
            string RunTime = EndTime.Subtract(StratTime).TotalMinutes.ToString();
            Label1.Text = "Processed in " + RunTime + " second(s)";不好意思,每次都是0
      

  5.   

    see:http://blog.joycode.com/lostinet/archive/2005/04/24/49590.aspxhttp://www.aspxboy.com/private/showthread.asp?threadid=655
      

  6.   

    我的没问题啊?
            Stopwatch stw = new Stopwatch();
            stw.Start(); 
            这去执行代码,不行就写个大循环,反正时间久点
            this.Response.Write(stw.ElapsedMilliseconds.ToString());
            stw.Reset();
    再试试,我的页面简单,一般都是1,4,5之类的
      

  7.   

    xiahouwen(武眉博<活靶子.NET>) 似乎不是个很好的解决方案,还有没?
      

  8.   

    svevx() 我晕你那是欺骗观众啦!
      

  9.   

    当前请求的开始时间不用自己记录.我一般用下面的代码实现
    protected override void OnUnload(EventArgs e)
    {
     TimeSpan t = DateTime.Now - HttpContext.Current.Timestamp;
     string c = "Processed in " + t.Milliseconds;}
      

  10.   

    似乎.Net想要实现页面执行时间这个功能有点勉强了
      

  11.   

    Environment.TickCount 用这个比较准一点
      

  12.   

    shalen520(Love will keep us alive)倒这个
      

  13.   

    我是说结果不应该是0啊。
    算了,自己看吧
    http://msdn2.microsoft.com/zh-cn/library/system.diagnostics.stopwatch(d=ide).aspx
    刚仔细看了下你的题目,你是测页面在服务器端的时间还是客户端的时间?
    客户端的时间的话,我不知道,那是我理解错误,对不起了!
      

  14.   

    svevx() 
    你的不是有错。而是如果没有代码的话,比如说
            Stopwatch stw = new Stopwatch();
            stw.Start(); 
            Response.Write(stw.ElapsedMilliseconds.ToString());
    这样的话有可能是0喔其实计算页面载入时间,这个。。我想来想去也是服务器端吧。。不是客户端的事。不过综上所述,基本已经得出结论了。7707(kingfisher) 10分
    svevx() 10分结帖。。PS:顶帖的朋友加0分^-^
      

  15.   

    后台一个Public变量execTime每次PageLoad时execTime = 当前时间(now)前台页面onload时获取<%=execTime%>并与现在的now比较......