Added a convenient invoke delegate

Events can now get called on the thread a developer specifies