2015-05-23 10 views
7

Kiedy tworzymy nowy wątek w ten sposób:Kiedy tworzymy i uruchamiamy nowy wątek .NET, czy tworzy on nowy wątek na poziomie systemu operacyjnego?

Threading.Thread t = new Threading.Thread(() => { Console.WriteLine("My New thread"); }); 
t.Start(); 

Czy będzie utworzyć wątku poziomie systemu operacyjnego, jak również?

+0

Cóż, nie jestem pewien, czy należy to nazwać niezarządzanym wątkiem. Ale prawdopodobnie wątek na poziomie systemu operacyjnego mógłby być nazywany tylko wątkiem niezarządzanym. – Randeep

Odpowiedz

12

Technicznie jest to niezdefiniowane, niestandardowy host CLR może użyć dowolnego konstruktu do implementacji wątku. Podstawowy interfejs hostingu to IClrTask. Nie ma przyzwoitego sposobu, aby się tego dowiedzieć.

Praktycznie to się nigdy nie zdarza. IClrTask został dodany na prośbę grupy SQL Server, która chciała opcję mapowania wątku na światłowód. Ten projekt ostatecznie zawiódł, nie mogli go wystarczająco stabilnie. Czerwona flaga dla każdego, kto mógł mieć podobne plany. O ile nie działasz jako wtyczka do dużego niezarządzanego programu podobnego do SQL Server, zawsze możesz założyć, że będziesz używać wątku systemu operacyjnego.

Powiązane problemy