Use Thread.Sleep() rather than Thread.Yield(), which seems to cause 100% CPU usage on Windows 2012.  Resolves #51