Esempio n. 1
0
 /// <summary>
 /// Raises the <see cref="Completed" /> event.
 /// </summary>
 /// <param name="args">The <see cref="CoTaskCompletedEventArgs"/> instance containing the event data.</param>
 protected void OnCompleted(CoTaskCompletedEventArgs args)
 {
     var handler = Completed;
     if (handler != null)
     {
         handler(this, args);
     }
 }
 /// <summary>
 /// Called when the execution of the decorated CoTask has completed.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="innerCoTask">The decorated CoTask.</param>
 /// <param name="args">The <see cref="CoTaskCompletedEventArgs" /> instance containing the event data.</param>
 protected override void OnInnerResultCompleted(CoroutineExecutionContext context, ICoTask innerCoTask,
     CoTaskCompletedEventArgs args)
 {
     if (args.Error != null || !args.WasCancelled)
     {
         OnCompleted(new CoTaskCompletedEventArgs(args.Error, false));
     }
     else
     {
         Continue(context);
     }
 }
        private void ChildCompleted(object sender, CoTaskCompletedEventArgs args)
        {
            var previous = sender as ICoTask;
            if (previous != null)
            {
                previous.Completed -= ChildCompleted;
            }

            if (args.Error != null || args.WasCancelled)
            {
                OnComplete(args.Error, args.WasCancelled);
                return;
            }

            bool moveNextSucceeded;
            try
            {
                moveNextSucceeded = _enumerator.MoveNext();
            }
            catch (Exception ex)
            {
                OnComplete(ex, false);
                return;
            }

            if (moveNextSucceeded)
            {
                try
                {
                    var next = _enumerator.Current;
                    next.Completed += ChildCompleted;
                    next.BeginExecute(_context);
                }
                catch (Exception ex)
                {
                    OnComplete(ex, false);
                }
            }
            else
            {
                OnComplete(null, false);
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Called when the execution of the decorated CoTask has completed.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="innerCoTask">The decorated CoTask.</param>
 /// <param name="args">The <see cref="Caliburn.Coroutines.CoTaskCompletedEventArgs" /> instance containing the event data.</param>
 protected override void OnInnerResultCompleted(CoroutineExecutionContext context, ICoTask innerCoTask,
                                                CoTaskCompletedEventArgs args)
 {
     OnCompleted(new CoTaskCompletedEventArgs(args.Error, false));
 }
 private void ContinueCompleted(object sender, CoTaskCompletedEventArgs args)
 {
     ((ICoTask) sender).Completed -= ContinueCompleted;
     OnCompleted(new CoTaskCompletedEventArgs(args.Error, args.Error == null));
 }
 /// <summary>
 /// Called when the execution of the decorated CoTask has completed.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="innerCoTask">The decorated CoTask.</param>
 /// <param name="args">The <see cref="Caliburn.Light.CoTaskCompletedEventArgs" /> instance containing the event data.</param>
 protected override void OnInnerResultCompleted(CoroutineExecutionContext context, ICoTask innerCoTask,
     CoTaskCompletedEventArgs args)
 {
     OnCompleted(new CoTaskCompletedEventArgs(args.Error, false));
 }
 /// <summary>
 /// Called when the execution of the decorated CoTask has completed.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="innerCoTask">The decorated CoTask.</param>
 /// <param name="args">The <see cref="CoTaskCompletedEventArgs"/> instance containing the event data.</param>
 protected abstract void OnInnerResultCompleted(CoroutineExecutionContext context, ICoTask innerCoTask,
     CoTaskCompletedEventArgs args);
 private void InnerCoTaskCompleted(object sender, CoTaskCompletedEventArgs args)
 {
     _innerCoTask.Completed -= InnerCoTaskCompleted;
     OnInnerResultCompleted(_context, _innerCoTask, args);
     _context = null;
 }