是否有简单的方法在c#中查找呼叫持续时间。
我正在使用Owin中间件拦截对API的调用并记录有关它们的信息,我想记录的部分内容是调用的持续时间。
<body>
<div class="container">
<div class="row">
<div class="col-sm-4" >.col-sm-4</div>
<div class="col-sm-4" >.col-sm-4</div>
<div class="col-sm-4" >.col-sm-4</div>
</div>
</div>
</body>
如果我的跟踪实体上有持续时间字段用于存储通话的时间长度,那么录制它的最佳方式是什么?
public override async Task Invoke(IOwinContext context)
{
var request = context.Request;
var response = context.Response;
var userName = request.User != null && request.User.Identity.IsAuthenticated ? request.User.Identity.Name : "No username";
var entity = new TrackingEntity()
{
UserName = userName
};
// invoke the next middleware in the pipeline
await Next.Invoke(context);
WriteRequestHeaders(request, entity);
WriteResponseHeaders(response, entity);
await storage.InsertEntity(entity);
}
使用定时器的最准确方法是在调用next之前启动并在之后结束?
任何意见都会受到赞赏我认为我只是过分思考这一点。
提前致谢。
答案 0 :(得分:2)
我认为您不需要创建计时器的开销,只需将开始时间记录到变量中,然后在另一个变量中结束时间以设置持续时间。
pageviewcontroller
这有点乱,但如果您在这个中间件中所做的只是记录,那么您希望它快速,这应该符合要求。