view MetroWpf/MetroWpf.Framework/TimedDelegates.cs @ 33:f3a0641c1586

bat files added to Messaging solution
author adminsh@apollo
date Thu, 22 Mar 2012 08:11:42 +0000
parents 060f02cd4591
children
line wrap: on
line source

using System;
using System.Diagnostics;

namespace MetroWpf.Framework
{
  public class TimedDelegates
  {
    public static void ExecuteAction(
  Action action,
  out Stopwatch stopwatch)
    {
      stopwatch = new Stopwatch();
      stopwatch.Start();
      action();
      stopwatch.Stop();
    }

    public static void ExecuteAction<T>(
      Action<T> action,
      T paramIn,
      out Stopwatch stopwatch)
    {
      stopwatch = new Stopwatch();
      stopwatch.Start();
      action(paramIn);
      stopwatch.Stop();
    }

    public static T ExecuteFunc<T>(
      Func<T> func,
      out Stopwatch stopwatch)
    {
      stopwatch = new Stopwatch();
      stopwatch.Start();
      T result = func();
      stopwatch.Stop();
      return result;
    }

    public static T ExecuteFunc<T>(
      Func<T, T> func,
      T paramIn,
      out Stopwatch stopwatch)
    {
      stopwatch = new Stopwatch();
      stopwatch.Start();
      T result = func(paramIn);
      stopwatch.Stop();
      return result;
    }
  }
}