If this thread is not currently blocked in a wait, sleep, or join state, it will be interrupted when it next begins to block.
System.Threading.ThreadInterruptedException is thrown in the interrupted thread, but not until the thread blocks. If the thread never blocks, the exception is never thrown, and thus the thread might complete without ever being interrupted.