В вашем тесте вы видите разные идентификаторы потоков, потому что для выполнения вашего кода использовались разные потоки.Это не означает, что async / await вызвало создание дополнительных потоков.В этом случае используемые потоки уже существовали в пуле потоков, называемом пулом потоков.
Существует две разные идеи:
- задачи, представляющие работу, которую нужно выполнить, и
- как задачи фактически обрабатываются (например, запланированы и выполнены)
Асинхронное / ожидание относится к первому, но ваш тестовый код говорит вам кое-что о втором: конкретный механизм, с помощью которого эти задачи были обработаны.
Механизм определяется контекстом.Некоторые контексты используют более одного потока (но учтите, что именно контекст решает, как он управляет этими потоками, в том числе и когда он создает новые), но некоторые используют только 1 поток.
То, что использовалось более одного потока, связано с контекстом, а не с асинхронным / ожиданием.