摘要: 这是今天帮 "柠檬" 分析一个 "AsyncLocal相关的问题" 时发现的. 试想这个代码输出的值是多少? 答案是123. 为什么修改了 的值却无效呢? 这要从AsyncLocal的运作机制说起. 首先这是 "AsyncLocal的源代码" : 获取和设置值用的是 和`ExecutionConte 阅读全文
posted @ 2017-10-28 15:55 q303248153 阅读(3019) 评论(7) 推荐(14) 编辑
摘要: 在 "上一篇" 我们对CoreCLR中的JIT有了一个基础的了解, 这一篇我们将更详细分析JIT的实现. JIT的实现代码主要在 "https://github.com/dotnet/coreclr/tree/master/src/jit" 下, 要对一个的函数的JIT过程进行详细分析, 最好的办法 阅读全文
posted @ 2017-10-28 11:48 q303248153 阅读(3353) 评论(4) 推荐(5) 编辑
摘要: 很多C 的初学者都会有这么一个疑问, .Net程序代码是如何被机器加载执行的? 最简单的解答是, C 会通过编译器(CodeDom, Roslyn)编译成IL代码, 然后CLR(.Net Framework, .Net Core, Mono)会把这些IL代码编译成目标机器的机器代码并执行. 相信大多 阅读全文
posted @ 2017-10-18 17:27 q303248153 阅读(7577) 评论(22) 推荐(45) 编辑
摘要: 2.0.0更新的内容有 更新框架要求 框架要求从 netstandard 1.6 升到 netstandard 2.0 框架要求从 netcoreapp1.1 升到 netcoreapp2.0 更新引用类库 Microsoft.AspNetCore.Hosting.Abstractions 2.0. 阅读全文
posted @ 2017-09-19 12:13 q303248153 阅读(1565) 评论(1) 推荐(2) 编辑
摘要: 因为在X86上long会被分割为两个int进行操作, 那么Interlocked.Increment的实现成为了一个问题。 在一番搜索后未发现有现成的文章解释这个问题,于是我就动手分析了。 这篇是笔记,不会做过多的解释。 首先重现环境是 .Net Core 2.0 Windows (x86) Bin 阅读全文
posted @ 2017-08-17 14:36 q303248153 阅读(1087) 评论(1) 推荐(2) 编辑
摘要: 对于在Linux上开发.Net Core的程序员来说, 似乎都缺少一个好的IDE. Windows上有Visual Studio, Mac上有Visual Studio for Mac, 难道Linux只有Visual Studio Code了吗? Linux上有两个最好的编辑器: VIM和Emac 阅读全文
posted @ 2017-08-07 14:39 q303248153 阅读(3953) 评论(12) 推荐(6) 编辑
摘要: 1.9.0更新的内容有 更新项目工具 更好的支持Linux 添加工具函数 Exception.ToDetailedString (获取例外的详细信息) Exception.ToSummaryString (获取例外的简略信息) Expression.ReplaceNode (替换表达式中的节点, 一 阅读全文
posted @ 2017-06-16 14:39 q303248153 阅读(480) 评论(1) 推荐(2) 编辑
摘要: NullReferenceException可能是.Net程序员遇到最多的例外了, 这个例外发生的如此频繁, 以至于人们付出了巨大的努力来使用各种特性和约束试图防止它发生, 但时至今日它仍然让很多程序员头痛, 今天我将讲解这个令人头痛的例外是如何发生的. 可以导致NullReferenceExcep 阅读全文
posted @ 2017-05-24 14:06 q303248153 阅读(2639) 评论(12) 推荐(16) 编辑
摘要: 微软在去年发布了Bash On Windows, 这项技术允许在Windows上运行Linux程序, 我相信已经有很多文章解释过Bash On Windows的原理, 而今天的这篇文章将会讲解如何自己实现一个简单的原生Linux程序运行器, 这个运行器在用户层实现, 原理和Bash On Windo 阅读全文
posted @ 2017-05-15 16:16 q303248153 阅读(23229) 评论(33) 推荐(55) 编辑
摘要: 这是一套基于ZKWeb网页框架和Angular 4.0编写的开源管理后台Demo,实现了前后端分离和模块化开发, 地址是: https://github.com/zkweb framework/ZKWeb.MVVMDemo ,开源协议是MIT,你可以随意的修改并用于个人或商业用途 我之前已经公开了一 阅读全文
posted @ 2017-05-11 12:06 q303248153 阅读(3628) 评论(4) 推荐(9) 编辑