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

  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • guau . .

    guau . .

    25 Ocak 2008
  • Tina Chen

    Tina Chen

    26 Mayıs 2012