4

我试图理解为什么System.Threading.Thread类是密封的。

我的猜测是安全性- 有几种框架方法采用Thread参数,这些方法Thread没有密封,可以提供派生的恶意类型。但我想不出这种类型可以做的真正的恶意事情。

你能想出例子吗?

4

1 回答 1

1

我想如果有人的派生线程类要覆盖诸如 VolatileRead 和 VolatileWrite 之类的东西,人们可以想象它们可能会在整个 .NET 运行时中使用,它们可能会造成一些损害。

也可能不是出于安全原因。由于线程对于许多程序的运行至关重要,因此如果以不正确的方式实现它们,那么运行时的稳定性就会付出高昂的代价。

编辑:可能没有性能优势,因为在密封类上调用虚拟方法时编译器会发出 callvirt。JIT 编译器可能会这样做,但我没有任何证据。

于 2013-01-14T13:31:33.647 回答