Exemplo n.º 1
0
 public TaskContinuable Then(Action <AsyncTask> task,
                             [CallerMemberName] string memberName    = "",
                             [CallerFilePath] string sourceFilePath  = "",
                             [CallerLineNumber] int sourceLineNumber = 0)
 {
     if (CurrentTask != null && !CurrentTask.IsDisposed)
     {
         CurrentTask.AddAfterFinishJob(task, memberName, sourceFilePath, sourceLineNumber);
         CurrentTask.FlushJob(false);
     }
     else
     {
         task(CurrentTask);
     }
     return(this);
 }
Exemplo n.º 2
0
        /// <summary>
        /// Test Program
        /// </summary>
        /// <param name="argv"></param>
        public static void Test(String[] argv)
        {
            AsyncTask goodjob = new AsyncTask(new Action(() => { Console.WriteLine("Main Job"); }));

            goodjob.AddAfterFinishJob(new Action(() => { Console.WriteLine("Additional Job"); }));
            goodjob.Start(false);
            goodjob.FlushJob();
            Console.WriteLine("Good Job-Available={0};IsFault={1}", goodjob.IsAvailable, goodjob.IsFault);
            AsyncTask badjob = new AsyncTask(new Action(() => { Console.WriteLine("Main Job2"); throw new Exception("No thing"); }));

            badjob.AddAfterFinishJob(new Action(() => { Console.WriteLine("Additional Job2"); }));
            badjob.Start(true);
            badjob.FlushJob();
            Console.WriteLine("Bad Job-Available={0};IsFault={1}", goodjob.IsAvailable, goodjob.IsFault);
        }