public void SetResult(object host, object result) { AdapterContextBase context = (host as AdapterContextBase); if (context != null) { Task task = (context.Args[0] as Task); if (task.IsPending) { while (!pendingTasks.Enqueue(task)) { ; } } else { if (task.Child == null && task.OutputPins.Length > 0) { GenerateInputTasks(new List <Task>(new Task[] { task })); } Task child = task.Child; while (child != null) { Dispatch(child); child = child.Next; } Interlocked.Decrement(ref activeTasks); } } }
public void SetError(object host, Exception error) { AdapterContextBase context = (host as AdapterContextBase); if (context != null) { if (Application.LogSeverity > SeverityFlags.Minimal) { Application.Error(SeverityFlags.None, "{0}{1}{2}", error.Message, Environment.NewLine, error.StackTrace); } else { Application.Error(SeverityFlags.None, error.Message); } Interlocked.Increment(ref errors); Interlocked.Decrement(ref activeTasks); } }