随笔分类 - C#语法
摘要:线程(一)——线程,线程池,Task概念+代码实践 摘要 线程中的概念很多,如果没有代码示例来理解,会比较晦涩,而且有些概念落不到实处,因此,本文以一些运行示例代码,结果来阐述线程中的一些基础概念。让自己跟读者一起把线程中的概念理解地更深刻。 1 线程安全 1.1 未出现线程抢占 class Thr
阅读全文
摘要:深入理解C#中的异步(一)——APM模式EAP模式 1 使用异步编程的原因 同步编程,服务器在响A服务的数据库读取,网页请求或者文件请求(这里我们统称为IO操作),如果延迟很大,此时如果来了B服务的IO请求,可能无法及时响应(阻塞),此时异步编程模式(非阻塞)应运而生。 异步编程模式是为了避免性能瓶
阅读全文
摘要:IL角度理解for 与foreach的区别——迭代器模式 1 最常用的设计模式 1.1 背景 如果问你最常用的设计模式是哪种?你可能会说单例模式,工厂模式。但根据我在项目里的经验,一个完整的应用,应该是迭代器模式。 1.2 摘要 本文不讲怎么去实现迭代器模式,但介绍迭代器模式到底是什么?为什么迭代器
阅读全文
摘要:IL角度理解C#中字段,属性与方法的区别 1.字段,属性与方法的区别 字段的本质是变量,直接在类或者结构体中声明。类或者结构体中会有实例字段,静态字段等(静态字段可实现内存共享功能,比如数学上的pi就可以存在静态字段)。一般来说字段应该带有private 或者 protected访问属性。一般来说字
阅读全文
摘要:#从IL角度彻底理解回调_委托_指针 #1.创作此文的背景 又是一个月的时间没写博文,瞎忙活,来武汉重新上班了,武汉这边中小学都开学了,很安全,大家可以放心 来商务出差个人游玩,重新招了个后端进团队,一个是在QQ技术群认识的,在他身上放佛看到了过去的自己,希 望以后能帮我分担更多的工作,得组织培训,
阅读全文
摘要:#1 linq介绍 ##1.1 linq产生背景 一个应用服务后台程序,肯定会需要格式各样的数据检索跟操作,而这些数据在过去的这些年里一般都会包含在关系型数据库或者xml文件中。 .Net3.5版本发行之前,传统的数据源访问方式就是直接对数据库或者xml文件进行检索操作。在.Net3.5 Visua
阅读全文
摘要:[toc] 1.背景 接上篇文章 "深入浅出C 结构体——封装以太网心跳包的结构为例" ,使用结构体性能不佳,而且也说明了原因。本篇文章详细描述了以类来封装网络心跳包的优缺点,结果大大提升了解析性能。 2.用类来封装以太网心跳包的优缺点 2.1.优点 + 可以在类里直接new byte[],即直接实
阅读全文
摘要:#1.应用背景 底端设备有大量网络报文(字节数组):心跳报文,数据采集报文,告警报文上报。需要有对应的报文结构去解析这些字节流数据。 #2.结构体解析 由此,我第一点就想到了用结构体去解析。原因有以下两点: ##2.1.结构体存在栈中 类属于引用类型,存在堆中;结构体属于值类型,存在栈中,在一个对象
阅读全文