Fixed a bug inside the GameLoop, abstracted the ThreadInvoker to IThreadInvoker.