public static Task AddTask(Action <object> action, object parameter, Action success, Action <Exception> failed)
 {
     return(factory.StartNew(obj =>
     {
         try
         {
             GetTaskAction(action)(obj);
             GetTaskAction(success);
         }
         catch (Exception e)
         {
             GetTaskAction(failed)(e);
         }
     }, parameter));
 }
 public static Task AddTask(Action action, Action success, Action <Exception> failed)
 {
     SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
     return(factory.StartNew(() =>
     {
         try
         {
             GetTaskAction(action)();
             GetTaskAction(success)();
         }
         catch (Exception e)
         {
             GetTaskAction(failed)(e);
         }
     }, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.FromCurrentSynchronizationContext()));
 }