Thread.Sleep blocks the thread for a specific amount of time while Thread.Join blocks it until the target thread has terminated.