diff MetroWpf/MetroWpf.Framework/Extensions/TaskExtensions.cs @ 15:060f02cd4591

Initial commit, pre airport work
author stevenh7776 stevenhollidge@hotmail.com
date Mon, 12 Mar 2012 23:05:21 +0800
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MetroWpf/MetroWpf.Framework/Extensions/TaskExtensions.cs	Mon Mar 12 23:05:21 2012 +0800
@@ -0,0 +1,24 @@
+using System;
+using System.Threading.Tasks;
+
+namespace MetroWpf.Framework.Extensions
+{
+    public static class TaskExtensions
+    {
+        public static void PropagateExceptions(this Task task)
+        {
+            if (task == null)
+                throw new ArgumentNullException("task");
+            if (!task.IsCompleted)
+                throw new InvalidOperationException("The task has not completed yet.");
+
+            if (task.IsFaulted)
+                task.Wait();
+        }
+
+        public static string GetErrorMessage(this AggregateException ex)
+        {
+            return ex.Flatten().InnerException.Message;
+        }
+    }
+}