public void Dispose() { shouldContinue = false; logger.DebugFormat("Stopping transport for {0}", queueEndpoint); if (timeout != null) { timeout.Dispose(); } if (cleanUp != null) { cleanUp.Dispose(); } DisposeQueueManager(); if (!haveStarted) { return; } foreach (var thread in threads) { thread.Join(); } }