TimeWatcher


  TimeWatcher 类是对 Stopwatch 类的封装,Watch 方法用于记录一个方法的执行时间。如下所示:

[TestMethod]
public void TestWatch()
{
    var time = TimeWatcher.Watch(CallOther);

    Console.WriteLine(time);
}

private void CallOther()
{
    //比较耗时的业务处理方法
}

[TestMethod]
public async Task TestWatchAsync()
{
    var time = await TimeWatcher.WatchAsync(CallOtherAsync);

    Console.WriteLine(time);
}

private async Task CallOtherAsync()
{
    //比较耗时的业务处理方法
}

  WatchApart 方法用于记录一组方法分别执行的时间,返回的 TimeSpan 也是一组。如下所示:

[TestMethod]
public void TestWatchApart()
{
    var times = TimeWatcher.WatchApart(CallOther1, CallOther2);

    foreach (var time in times)
    {
        Console.WriteLine(time);
    }
}

private void CallOther1()
{
    //比较耗时的业务处理方法
}

private void CallOther2()
{
    //比较耗时的业务处理方法
}

  而 WatchAround 方法与 WatchApart 方法的不同之处在于,WatchAround 方法记录的是每一个方法执行结束的时间点。