Task - kawałek kodu, który wykonuje się asynchronicznie (czyli bez użycia innych wątków)
co to za bzdura, jeśli task umieszczony jest w jednym wątku, to działa w wątku w obrębie kontekstu, tylko asynchronicznie- nie blokując działania pozostałym operacją, które mogłyby oczekiwać na rezultat / zmiane.
TASK - nie tworzy nowego wątku, być może inny wątek jest wykorzystywany ponownie bez twojej wiedzy.
W puli wątków jest ich kilka, więc jeśli aplikacja nie wykorzystuje wszystkich to jest brany pierwszy wolny wątek z puli
Poczytaj o THREAD EXECUTOR https://stackoverflow.com/questions/1951924/executioncontext-of-threads
Ale nie jest tworzony NOWY WĄTEK
Jeśli przykładowo mamy kod, który ma 50 razy Console.WriteLine("Programming") i każde wykonuje się co sekundę ( ustawiony delay 1000ms)
To ten kod się wykonuje, a asynchronicznie wykonuje sie operacja
do tego na samym początku mamy funkcję asynchroniczną która wykonuje się 10 sekund
Przez 10 sekund, więc ona pewnie skończy się szybciej niż trwające operacje wypisywania co sekundę, ale to nie jest tak ze one zostaną uruchomione po zakończeniu, nie przez fakt asynchroniczny tamto wypisywanie trwa, natomiast to ruszyło w momencie kiedy wątek to uruchomił nawet wcześniej i już zakończy swoje działanie, przed końcem wypisywania