Технически это not a new thread
это поток Threadpool, и он мигрирует дольше, чем ваш процесс / программа, но может запускать некоторые другие потоки, вызывая асинхронные вызовы немедленно, как только он завершает ваш. Ознакомьтесь со статьями MSDN по Асинхронное программирование и Пул потоков , чтобы получить полную информацию.
И в зависимости от вашего интереса проверьте I / O CompletionPort для получения дополнительной информации.
Асинхронное программирование обычно считается лучше, чем хотя бы синхронный код, но если вы работаете в .NET 4.0, взгляните на Task Parallel Library .
На основании вопроса о редактировании, когда мне следует создавать собственную тему?
Всегда лучше использовать программирование на BeginInvoke или Async по сравнению с созданием собственного потока. Строго создавайте свой собственный поток, когда вы уверены, что вам нужен выделенный поток, выполняющий какое-то задание / работу непрерывно, и вы хорошо понимаете механизм синхронизации, необходимый для нескольких потоков в вашем приложении. Старайтесь не создавать новые темы, пока у вас нет действительно веских причин. Вы добавляете поток сегодня и, вероятно, продолжаете, и через два года три разработчика увидят, что для некоторых непрерывных вещей был добавлен дополнительный поток, они добавят еще немного и так далее. Поверьте мне, я видел, как это происходит, поэтому установите правильные методы (например, используя методы Asynch), и люди попытаются следовать этому. Я видел приложения с 150 потоками, имеет ли это смысл на двухъядерном или четырехъядерном компьютере, я так не думаю.
Только что проверив все запущенные процессы на моем ноутбуке Toshiba на наличие таких плохо спроектированных приложений, Toshiba Bluetooth Manager выиграла корону худшей программы на моем компьютере, используя 53 потока. :)