public void DisposeController(Controller controller) { if (controllers.Contains(controller)) { controllerQueue.Enqueue(Tuple.Create(controller, QueueState.Dispose)); } else if(controller != null) { controller.Unload(); } }