程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了用委托或lambda包装秒表计时?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决用委托或lambda包装秒表计时??

开发过程中遇到用委托或lambda包装秒表计时?的问题如何解决?下面主要结合日常开发的经验,给出你关于用委托或lambda包装秒表计时?的解决方法建议,希望对你解决用委托或lambda包装秒表计时?有所启发或帮助;

如何扩展码表类?

public static class StopwatchExtensions
{
    public static long Time(this Stopwatch sw, Action action, int iterations)
    {
        sw.reset();
        sw.Start(); 
        for (int i = 0; i < iterations; i++)
        {
            action();
        }
        sw.Stop();

        return sw.ElapsedMilliseconds;
    }
}

然后这样称呼它:

var s = new Stopwatch();
Console.Writeline(s.Time(() => Dostuff(), 1000));

您可以添加另一个重载,该重载忽略“ iterations”参数,并使用一些默认值(例如1000)调用此版本。

解决方法

我正在编写这样的代码,但时间却又快又脏:

var sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 1000; i++)
{
    b = Dostuff(s);
}
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);

肯定有一个方法来调用此位的计时码作为花式schmancy .NET 3.0的λ,而不是(上帝保佑)剪切和粘贴了几次和更换 Dostuff(s)
DoSomethingElse(s)

我知道可以这样做,Delegate但我想知道lambda方式。

大佬总结

以上是大佬教程为你收集整理的用委托或lambda包装秒表计时?全部内容,希望文章能够帮你解决用委托或lambda包装秒表计时?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。