Just discovered an issue where the event was still being fired on an already destroyed instance.
You don't provide a way to unbind the event handler that's setup in the InitTimer call.
It would be good if you provided a DestroyTimer() call that stopped the timer and unbound the event handler.
I can make the relevant changes and send a PR if required :)