随笔分类 - .NET基础
摘要:说起Golang(后面统称为Go),就想到他的高并发特性,在深入一些就是 Goroutine。在大家被它优雅的语法和简洁的代码实现的高并发程序所折服时,其实C#/.NET也可以很容易的做到。今天我们来参照Go,来用C#实现它所采用的的CSP并发模型。CSP(Communicating sequential processes)这东西我一开始以为很简单,后面差了资料发现它独树一帜,自己是一门语言,也...
阅读全文
摘要:翻出了之前记录的笔记,基本涵盖了.NET中线程和异步的相关概念。可以提供一个学习的方向。线程类型工作者线程IO线程线程池全局队列(QueueUserWorkItem、Timer总是放入全局)本地队列工作者线程调度流程如果本地队列有任务,则调度本地队列如果本地队列没有任务则去其它工作者线程中调度如果所有工作者线程本地队列都没有任务则去全局队列取任务调度如果全局队列也没有任务则睡眠等待如果睡眠了太长时...
阅读全文
摘要:摘要: 众所周知.NET在第一次执行的时比第二第三次的效率要低很多,最常见的就是ASP.NET中请求第一个页面的时候要等上一段时间,而后面任意刷新响应都非常迅速,那么是什么原因导致的呢?为什么微软不解决这个问题呢?问题首先大家可以在心底回答这几个问题,这也是读完本文之后会陆续解决的问题。1.生成就是编译吗?2.既然执行过一次之后效率会高很多为什么微软不解决这样的问题呢?3.预编译比默认的方式好吗?效率比较第一次执行耗费了399第二次执行耗费了5为什么差这么多呢?后面就让我们来揭晓。注:单位不是ms(毫秒)生成就是编译吗?首先我先回答第一个问题:生成也是编译(语言编译),只不过不是编译成机器码(汇编),
阅读全文
摘要:摘要: 在一次会议上由于一些需要提到了匿名类型,也由此展开了两批人,我和另一位主张匿名类型不是强类型,而另两位则觉得匿名类型属于强类型,此博文主要深入了解一下匿名类型。 什么是匿名类型? 原来不想写这个标题相关内容的,因为类似文章还是很多的,但为了一些新人能更好的阅读本文章就顺便提及一下,这里不涉及太深的东西,只是简单的介绍。 匿名类型和var关键字是Visual C# 3.0提供的一个新特性或者说是语法糖,var是隐式类型而并不是类型javascript中的var。 var user = new { Id = 1, Name = "张三", Age = 15 };Console.
阅读全文
摘要:摘要: 今天在工作的时候听到一席谈话感觉有点不可思议,微软真的是把开发人员惯的有点傻了,微软流水线式的产品让很多开发者认定了“唯一”,这当然也说明了微软的成功,不扯太多题外话,今天只是简单的谈一谈而不是深入的去研究,老鸟绕路哈。 对话内容如下: X1:你封装的那个类库发给我一下。 X2:可以啊,我是VS2010开发的你可以用吗? X1:你直接生成下给我不就好了。 X2:我很忙没空啊,我把项目给你。 X1:你的项目是VS2010开发的? X2:是啊。 X1:那你不是要.net 4.5。 X2:不用啊,4.0就可以,Win7自带。X1:那使用起来客户端不是要装.net 4? X1:不用啊,你把那用到的类文
阅读全文