SORU
24 EKİM 2008, Cuma


Sarma temsilci veya lambda ile zamanlama Kronometre?

Bu kodu, hızlı ve kirli bir zamanlama yaparak yazıyorum:

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

Mutlaka bir şekilde zamanlama bu biraz fiyakalı bir kod çağırma yok .NET 3.0 lambda yerine (Allah korusun) kesme ve birkaç kez yapıştırma ve değiştirmeDoStuff(s)ileDoSomethingElse(s)?

Delegate olarak yapılabilir biliyorum ama lambda yolu hakkında merak ediyorum.

CEVAP
24 EKİM 2008, Cuma


Hakkında uzanan Kronometre sınıf?

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;
    }
}

O zaman şöyle diyoruz:

var s = new Stopwatch();
Console.WriteLine(s.Time(() => DoStuff(), 1000));

"Yineleme" ve bazı varsayılan değer (1000 gibi) ile bu sürüm çağırır parametre. bu atlar bir başka aşırı ekleyebilirsiniz

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Digital Bounds

    Digital Boun

    19 Temmuz 2013
  • Dumb Stupid Videos

    Dumb Stupid

    26 Kasım 2013
  • paulandstorm

    paulandstorm

    4 EYLÜL 2006