Thread.Sleep() in theory should no stop your application from responding to
other Threads, i.e. the main one. Where as Thread.Join().
Thread.Join() will ensure that a thread has terminated, in theory, blocking
the call thread indefinatly, until the calling thread terminates.