Is there a reason for the main loop and heartbeat threads to be Foreground threads? I was expecting my process to die when my last app thread died, but the Rabbit threads are Foreground (the default) so they keep the process alive. I know I could do connection.Close, but I'd rather be irresponsible with my connection lifecycle.