internal void Step(ITask task, DispatcherQueue queue)
{
try {
if (iterator.MoveNext ()) {
task = iterator.Current;
task.LinkedIterator = this;
task.TaskQueue = queue;
task.Execute ();
}
} catch (Exception ex) {
this.iterator.Dispose ();
this.iterator = null;
Console.WriteLine (ex);
//TODO post it somewhere
}
}