static void ThirdAsync(ChainedOperation c)
 {
     Task.Factory.StartNew(() =>
     {
         //throw new Exception("Wakka");
         Trace.TraceInformation("Third (TID: {0})", Thread.CurrentThread.ManagedThreadId);
         c.Pass();
         //c.Fail();
     });
 }
 static void Third(ChainedOperation c)
 {
     // throw new Exception("Wakka");
     Trace.WriteLine("Third");
     c.Pass();
 }
 static void SecondAsync(ChainedOperation c)
 {
     Task.Factory.StartNew(() =>
     {
         Trace.TraceInformation("Second (TID: {0})", Thread.CurrentThread.ManagedThreadId);
         c.Pass();
     });
 }
 static void Second(ChainedOperation c)
 {
     Trace.WriteLine("Second");
     c.Pass();
 }
 static void Fourth(ChainedOperation c)
 {
     Trace.WriteLine("Fourth");
     c.Pass();
 }
 static void First(ChainedOperation c)
 {
     Trace.WriteLine("First");
     c.Pass();
 }