在onactionexecuting与onactionexected中相同代码的执行时间

吉滕德拉乔希

我有一个带有OnActionExecuted一些代码的方法的基本控制器

我想对该方法检查过滤器OnActionExecuting

更改会带来性能问题吗?

危险的

首先,(无论性能如何)您都应使用适合您情况的方法如果要在执行action方法之前执行执行,请使用OnActionExecuting如果要在执行动作后执行执行,请使用OnActionExecuted

至于性能,它们应该完全相同。控制器提供了两个空的虚拟方法供您在自己的控制器中实现(此处不涉及性能):

protected virtual void OnActionExecuting(ActionExecutingContext filterContext)
{
}

protected virtual void OnActionExecuted(ActionExecutedContext filterContext)
{
}

如果查看MVC源代码(请参见下面的代码示例),则可以看到在调用操作之前ControllerActionInvoker简单地调用OnActionExecuting(preContext)方法,然后OnActionExecuted(postContext)在操作完成之后(或引发异常时)调用

internal static ActionExecutedContext InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func<ActionExecutedContext> continuation)
{
    filter.OnActionExecuting(preContext);
    ...

    try
    {
        postContext = continuation();
    }
    catch (ThreadAbortException)
    {
        ...
        filter.OnActionExecuted(postContext);
        throw;
    }
    catch (Exception ex)
    {
        ...
        filter.OnActionExecuted(postContext);
        if (!postContext.ExceptionHandled)
        {
            throw;
        }
    }
    if (!wasError)
    {
        filter.OnActionExecuted(postContext);
    }
    return postContext;
}

我相信OnActionExecutingOnActionExecuted方法都将被调用,即使它被调用为空(非覆盖)方法,因此性能也不是问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Linux中的代码执行时间

来自分类Dev

相同请求的执行时间不同

来自分类Dev

相同请求的执行时间不同

来自分类常见问题

C和C ++中几乎相同的代码在执行时间上的巨大差异(x9)

来自分类Dev

执行时间

来自分类Dev

Miracl库中的执行时间

来自分类Dev

线程中的总执行时间

来自分类Dev

为什么独立代码块的执行时间取决于Scala中的执行顺序?

来自分类Dev

测量执行时间 - 在程序代码中还是在 shell 中?

来自分类Dev

如何在 Swift 中测量 DispatchQueue 并发异步中的代码块执行时间?

来自分类Dev

为什么相同的python块的执行时间不同?

来自分类Dev

如何在C ++中获得一段代码的执行时间?

来自分类Dev

如何减少C ++中以下代码的执行时间?

来自分类Dev

如何在C ++中获得一段代码的执行时间?

来自分类Dev

如何减少C ++中以下代码的执行时间?

来自分类Dev

如何检查整个代码中的mysql查询执行时间

来自分类Dev

如何在C#中的函数内部捕获代码块调用的执行时间

来自分类Dev

如何客观评估C ++代码段的执行时间?

来自分类Dev

双重编译C代码以减少执行时间

来自分类Dev

如何找到一段代码的执行时间?

来自分类Dev

需要帮助以减少以下代码的执行时间

来自分类Dev

如何客观评估C ++代码段的执行时间?

来自分类Dev

估计本地Linux系统上代码的执行时间

来自分类Dev

如何计算变量输入的Matlab代码执行时间?

来自分类Dev

如何找到C中代码的执行时间?

来自分类Dev

Java代码执行时间问题

来自分类Dev

功能执行时间

来自分类Dev

测量执行时间

来自分类Dev

功能执行时间