将结果写入文本文件的秒表

Stopwatch To Write Results To A TextFile

在 ASP.NET .aspx.cs 页面中使用 stopwatch()。我正在尝试衡量性能,但不确定如何使用 Web 表单进行测量。我希望在过程打开时触发 start() 事件,并在过程中执行最后一行代码后触发 stop() 事件。然后将程序名称、开始时间和结束时间写入文本文件。我应该如何使用 C#/ASP.net?

你考虑过使用装饰器吗?不确定 "procedure" 是什么,但我会试一试...

public interface IProcedure
{
    void Run();
}

public class RealProcedure : IProcedure
{
    public void Run()
    {
        // Do interesting stuff
    }
}

public class LoggingProcedure : IProcedure
{
    private readonly IProcedure _procedure;

    public LoggingProcedure(IProcedure procedure)
    {
        if (procedure == null)
            throw new ArgumentNullException("procedure");
        _procedure = procedure;
    }

    public void Run()
    {
        var stopWatch = new Stopwatch();
        stopWatch.Start();
        _procedure.Run();
        stopWatch.Stop();

        // Log elapsed time with w/e you are using for logging.
    }
}

如果您使用的是 DI 容器,您可以在组合根目录中连接 IProcedure 实现,或者您可以使用 Mark Seemann 所指(或曾经)作为穷人的 DI 的内容:

IProcedure procedure = new LoggingProcedure(new RealProcedure());
procedure.Run();

现在你已经把秒表考虑在内了,SRP