2015-05-23 3 views
7

Когда мы создаем новый поток таким образом:Когда мы создаем и запускаем новый поток .NET, создает ли новый поток уровня ОС?

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

Собирается создать уровень нитку ОС, а?

+0

Ну, я не уверен, следует ли это назвать неуправляемой нитью. Но, возможно, поток уровня ОС можно назвать только неуправляемым потоком. – Randeep

ответ

12

Технически это не определено, пользовательский хост CLR может использовать любую конструкцию для реализации потока. Основной интерфейс хостинга - IClrTask. Также нет достойного способа узнать.

Практически это никогда не случается. IClrTask был добавлен по запросу группы SQL Server, которая хотела, чтобы опция отображала поток на волокно. Этот проект в конечном счете потерпел неудачу, они не смогли получить его достаточно стабильным. Красный флаг для всех, у кого могли быть подобные планы. Если вы не используете плагин для большой неуправляемой программы, похожей на SQL Server, вы всегда можете предположить, что вы будете использовать поток ОС.

Смежные вопросы