You create a thread, set it as a background thread, and start it. Your "main" thread ends. Since the new thread is a background thread, it does not remain operational - so the whole process ends before the background thread encounters any problems.
If you write:
testThread.Join();
in your method Mainor do not set the new thread as a background thread, you must click a breakpoint.