Это больше вопрос .NET / CLR, чем C #. Как правило, это вопрос операционной системы. Windows не поддерживает fork()
-подобную семантику порождения новых процессов. Кроме того, fork()
не имеет ничего общего с поддержкой многопоточности.
Семантика fork()
включает в себя дублирование содержимого адресного пространства исходного процесса. Мое мнение таково, что это устаревший подход к созданию процессов, и он практически не имеет места в мире Windows, поскольку в нем много проблем с безопасностью и архитектурой операционной системы.
С точки зрения .NET фундаментальная проблема с fork()
заключается в подходе к дублированию и / или совместному использованию неуправляемых ресурсов (файловых дескрипторов, объектов синхронизации, оконных дескрипторов (!) И т. Д.) Между старыми и новый процесс. Я думаю, что нет никаких серьезных оснований для введения такой концепции ни в .NET, ни в основную операционную систему Windows.
Для дальнейшего обсуждения см. Ссылку Саураба.