标签: CSharp
带有该标签的全部文章 "CSharp".
什么时候才需要管线程安全?——一个能直接套的判断清单
判断标准只有一条:有没有"多个执行流"同时访问"同一份可变数据"。两个条件同时成立才需要考虑,缺任何一个都不用管。附一份四步自查清单和共享数据的风险排序。
委托的线程安全:`+=` 看着是一步,实际是三步
从"委托不可变"出发,把两个线程同时订阅却丢掉一个的全过程拆开看:为什么 private 挡不住、编译器生成的 add/remove 凭什么没事(附正确的 CAS 伪代码)、以及不可变顺手带来的那个好处。
C# 的语法糖有多甜?——? 家族、=> 与属性模式的一次清点
从"写过七门语言还是觉得 C# 最甜"讲起:? 家族七个成员分别是哪年加进来的、=> 和属性模式去糖后长什么样,以及 C# 的糖和 Scala 的糖到底甜在哪儿不一样。
从函数指针到 event——C# 委托学习笔记
一次从头到尾的较真:delegate 编译出来是什么、多播列表为什么不能用数组去想、内置三件套该挑哪个、两个会咬人的坑,以及那个绕了很久的问题——我手写的 Add/Remove 明明已经能订阅了,event 凭什么非存在不可。答案牵扯到权限、并发、契约三件互不相干的事。