If a foreground thread is a thread that prevents a process from terminating until all foreground threads belonging to the process have finished, and if the
The difference is the concept of Fire and Forget.i.e. One does not wait for the end of the thread. If one calls the Join method then you are explicitly waiting for the thread to finish execution.