TMonitor.Enter

http://blogs.codegear.com/abauer/2008/02/19/38856
きゃー。やめて。
全オブジェクトがロック可能なんて……D言語のObjectがそのために無駄に8バイトなのに……。無数のスレッドとは何の関係も無いオブジェクトが4バイトずつ無駄にするなんて……。堪えられそうに無いです。
もし、もしTMonitor側でマップ持ってればTObject.InstanceSizeは増えなくて済みますけれど、そんな効率悪い実装だと誰もが誰も迷い無くクリティカルセクションの生API選ぶでしょうし!
そ、そんなことしても無駄なんだからねっ。
R/Wロックや2スレッド以上進入可能なセマフォ使いたい時は無駄なんだからねっ。
なんでこんなlock文だのsynchronized文だのが流行ったんだろうか。C#Javaから受け継いだ負の遺産ですよ。やるならCLR側でどうにでも最適化できるDelphi for .NETだけにして、ネイティブに持ち込まないで……!
例えば……R/Wロックに待ち合わせ処理&ロック権譲渡機構付きで、いくらなんでもこれ以上の複雑怪奇なロック機構はいらないだろうってぐらいでしかもAPIより高速軽量というなら別ですが……どうせならランデブーぐらい実装してください……いずれにしても、使わないのは見えてますがっ。