在部分受信任程序集中,所有的代码都是安全透明的

所以在这个程序集里,即使你给你自己的 Exception派生类的 GetObjectData重写应用了 SecurityCriticalAttribute,这个函数实际上还是安全透明(Security Transparent)的。(可以用反射获知。)但 Exception.GetObjectData是安全关键(Security Critical)的,所以在沙盒程序集中以部分信任的方式加载引发 TypeLoadException也算是在情理之中吧。比如 继续阅读“在部分受信任程序集中,所有的代码都是安全透明的”

使用信号量实现条件变量过程中的一些坑

https://birrell.org/andrew/papers/ImplementingCVs.pdf

另外,C#的 Monitor.WaitMonitor.Pulse看起来可以用来实现CV。在这篇文章中提到了一些使用细节。看起来和 pthread_cond_wait() 的用法有点类似,都要在函数返回后重新确认producer有没有产生需要的内容,然后在必要时继续等待。

值得一提的是,在第二篇文章中,作者实际上构造出了一个简易的 AutoResetEvent 。