internal void RunTask(TaskBase task) { var oldTask = currentTask; currentTask = task; currentTask.DoInternal(); currentTask = oldTask; }