C#中的叉概念

时间:2010-10-12 09:16:23

标签: c# .net clr fork

由于C#支持线程,有没有办法在C#中实现fork概念?

提前致谢....

1 个答案:

答案 0 :(得分:18)

这更像是.NET / CLR而不是C#。通常,这是底层操作系统的问题。 Windows不支持fork() - 类似于生成新进程的语义。此外,fork()与多线程支持无关。

fork()的语义涉及复制原始进程的地址空间的内容。我的观点是,这是一种过时的流程创建方法,在Windows世界中几乎没有空间,因为它涉及很多安全和操作系统架构问题。

从.NET的角度来看,fork()的基本问题是在两者之间复制和/或共享非托管资源(文件句柄,同步对象,窗口句柄(!)等)的方法。旧的和新的过程。我认为没有严肃的理由将此概念引入.NET或基础Windows操作系统。

有关进一步讨论,请参阅saurabh的链接。