public DisposableStopwatch(Action <TimeSpan> onDispose = null)
 {
     _sw       = new Stopwatch();
     onDispose = onDispose ?? (t => { });
     _callback = new DisposableAction(() => onDispose(_sw.Elapsed));
     _sw.Start();
 }
 public FinalizerAction(DisposableAction action)
 {
     _action = action;
 }
 public FinalizerAction(Action action)
 {
     _action = new DisposableAction(action);
 }