The static EventDispatcher factory creates dependencies that are disposable. These should be disposed of at some point. Consider an implementation that will address this issue.
I think it may be necessary to change the EventDispatcher to be something else (some kind of manager) and make it disposable.