2025年4月9日 星期三 乙巳(蛇)年 正月初十 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > .net

.NET Core如何记录方法运行时间

时间:02-04来源:作者:点击数:44

.NET Core提供了两种方法来记录方法运行时间:

  • 使用Stopwatch类
  • 使用RequestTimeoutMiddleware中间件

使用Stopwatch类

Stopwatch类是一个计时器,可以用来测量代码的运行时间。要使用Stopwatch类来记录方法运行时间,您可以按照以下步骤操作:

创建一个Stopwatch实例。

调用Start()方法开始计时。

在方法执行完毕后,调用Stop()方法停止计时。

调用Elapsed属性获取方法运行的时间。

以下是一个使用Stopwatch类记录方法运行时间的示例:

  • using System;
  • using System.Diagnostics;
  • class Program
  • {
  • static void Main(string[] args)
  • {
  • // 创建一个Stopwatch实例
  • Stopwatch sw = new Stopwatch();
  • // 开始计时
  • sw.Start();
  • // 执行方法
  • //...
  • // 停止计时
  • sw.Stop();
  • // 获取方法运行时间
  • TimeSpan elapsed = sw.Elapsed;
  • // 输出方法运行时间
  • Console.WriteLine("方法运行时间:{0}", elapsed);
  • }
  • }

输出:方法运行时间:00:00:00.0000000

使用中间件

.NET Core提供了一个名为IAsyncRequestTimeoutMiddleware的接口,可以用来记录方法运行时间。要使用IAsyncRequestTimeoutMiddleware来记录方法运行时间,您可以按照以下步骤操作:

在应用程序的Startup.cs文件中,将IAsyncRequestTimeoutMiddleware添加到Configure()方法的UseEndpoints()方法中。

在UseEndpoints()方法的参数中,设置RequestTimeout属性。

在方法中,使用HttpContext.Request.ExecutionTime属性获取方法运行时间。

以下是一个使用IAsyncRequestTimeoutMiddleware记录方法运行时间的示例:

  • using System;
  • using System.Net.Http;
  • using Microsoft.AspNetCore.Builder;
  • using Microsoft.AspNetCore.Http;
  • namespace Middleware
  • {
  • public class Startup
  • {
  • public void Configure(IApplicationBuilder app)
  • {
  • app.UseMiddleware<IAsyncRequestTimeoutMiddleware>();
  • app.UseEndpoints(endpoints =>
  • {
  • endpoints.MapGet("/", async context =>
  • {
  • // 获取方法运行时间
  • TimeSpan elapsed = context.Request.ExecutionTime;
  • // 输出方法运行时间
  • Console.WriteLine("方法运行时间:{0}", elapsed);
  • // 返回响应
  • return context.Response.WriteAsync("Hello, world!");
  • });
  • });
  • }
  • }
  • }

输出:方法运行时间:00:00:00.0000000

具体使用哪种方法取决于您的具体需求。

如果您只需要记录单个方法的运行时间,那么可以使用Stopwatch类。

如果您需要记录多个方法或请求的运行时间,那么可以使用中间件。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门