using System.Threading.Tasks;
namespace LISTING_1_16_Continuation_options
public static void HelloTask()
throw new Exception("Fail");
Console.WriteLine("Hello");
public static void WorldTask()
Console.WriteLine("World");
public static void ExceptionTask()
Console.WriteLine("Exception thrown");
public static void Main(string[] args)
Task task = Task.Run(() => HelloTask());
task.ContinueWith((prevTask) => WorldTask(), TaskContinuationOptions.OnlyOnRanToCompletion);
task.ContinueWith((prevTask) => ExceptionTask(), TaskContinuationOptions.OnlyOnFaulted);
Console.WriteLine("Finished processing. Press a key to end.");