Time Taken to process a request in asp.net using C#
我想计算系统使用C_在ASP.NET中执行特定操作所花费的时间。当用户单击某个按钮以获得任何结果时,我必须显示结果以及他们获得结果所花费的时间。任何人请告诉我显示所用时间必须给出的代码。
如果您想测量某个操作需要多长时间,那么可以使用秒表对象。下面的用法示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | class Program { static void Main() { // Create new stopwatch Stopwatch stopwatch = new Stopwatch(); // Begin timing stopwatch.Start(); // Do something for (int i = 0; i < 1000; i++) { Thread.Sleep(1); } // Stop timing stopwatch.Stop(); // Write result Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed); } } |
因此,在您的场景中,您需要做的是在开始执行操作/方法时启动秒表,并在返回视图/完成执行之前停止它。然后,您可以使用秒表.elapsed值向用户显示它。
原始海报指定了ASP.NET。在ASP.NET中实现这一点的最简单方法可能是将类似这样的东西注入到您的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | private static ILog log = log4net.LogManager.GetLogger( typeof(Global) ) ; void Application_BeginRequest( object sender , EventArgs e ) { Stopwatch timer = new Stopwatch(); timer.Start(); Request.RequestContext.HttpContext.Items["timer"] = timer ; return ; } void Application_EndRequest( object sender , EventArgs e ) { Stopwatch timer = (Stopwatch) this.Request.RequestContext.HttpContext.Items["timer"] ; timer.Stop() ; log.InfoFormat("HttpVerb={0}, URL={1}, elapsed time={2}" , this.Request.RequestType , this.Request.Url , timer ) ; return ; } |
如果要在特定于页面的基础上执行此操作,则需要执行类似的操作,分别挂接page.preinit和page.unload事件。
在请求期间,您几乎需要使用