Korzystanie z System.Threading.Tasks.Parallel tworzy nowy wątek w puli wątków?
Może nie rozumiałem tego dobrze ... wszystkie problemy z klasą równoległą :(
Ale z tego, co teraz czytam, rozumiem, że kiedy używam Równoległego, faktycznie mobilizuję wszystkie wątki, które istnieją w wątku Puli dla jakiegoś zadania / misji.
Na przykład:
var arrayStrings = new string[1000];
Parallel.ForEach<string>(arrayStrings, someString =>
{
DoSomething(someString);
});
Zatem Parallel.ForEach w tym przypadku mobilizuje wszystkie wątki istniejące w wątku puli dla zadania / misji „DoSomething”.
Ale czy połączenie Parallel.ForEach w ogóle stworzy nowy wątek?
Jasne jest, że nie będzie 1000 nowych wątków. Ale załóżmy, że istnieje 1000 nowych wątków, niektóre przypadki, że threadPool zwalnia cały wątek, który trzyma, w tym przypadku ... Parallel.ForEach utworzy nowy wątek?