может ли поток содержать несколько подобных потоков?
Это не то, что происходит. Эти темы никак не связаны между собой. Каждый из них создается и запускается по одному.
Когда вы делаете это:
tmpThread = new Thread(new ThreadStart(() => User2Listern(user2);
Новый поток не имеет ничего общего с предыдущим потоком. То, что здесь происходит, даже не имеет ничего общего с потоками, то же самое будет верно для любого объекта.
Создается новый объект, и переменная теперь указывает на этот новый объект вместо старого один. Старый еще существует. Если ничто не использует старый объект, то он может быть доступен для сбора мусора под капотом. Но это не тот случай, старый объект все еще находится в памяти и все еще выполняет свою функцию потока. Переменная теперь просто указывает на новый объект.
Если в конце этого метода вы изучите содержимое tmpThread
, вы обнаружите, что он ссылается только на последний Thread
объект, который был создан. Этот метод больше не имеет ссылок на первые два объекта.