private void DoTaskInternal(Task task)
        {
            if (currentTask.TaskEntity != null)
                UnsubscribeToDeletionEvent(currentTask.TaskEntity);

            currentTask = task;

            if (currentTask.TaskEntity != null)
                SubscribeToDeletionEvent(currentTask.TaskEntity);
            currentTask._Begin();
        }