发生内存泄漏?
摘要:有了GC还会不会发生内存泄漏? 问题的发现 这个问题是我在写C++时考虑到的,C++需要手动管理内存,虽然现在标准库中提供了一些智能指针,可以实现基于引用计数的自动内存管理,但现实环境是很复杂的,我们仍要注意循环引用的问题。还有一个容易被忽视的问题就是对象间关系的“占有”和“非占有”,这个问题其实在
阅读全文
ZipHelper 压缩和解压帮助类
摘要:ZipHelper 压缩和解压帮助类 关于本文档的说明 本文档基于ICSharpCode.SharpZipLib.dll的封装,常用的解压和压缩方法都已经涵盖在内,都是经过项目实战积累下来的 欢迎传播分享,必须保持原作者的信息,但禁止将该文档直接用于商业盈利。 本人自从几年前走上编程之路,一直致力于
阅读全文
抖屏与收发各种类型文件
摘要:抖屏与收发各种类型文件 1.前言 这是本系列的第三篇文章,上一篇我们讲到实现了客户端对客户端的一对一的普通聊天,本篇文章实现好友间发送抖屏与收发各种类型文件,我对不同的消息进行了封装,以及对服务器解析消息进行了重构。向往常一样我会把聊天服务器部署到广域网服务器上,到时候大家就可以可以在源码里面打开客
阅读全文
发送和接收数据包
摘要:发送和接收数据包 原文:Game Networking系列,作者是Glenn Fiedler,专注于游戏网络编程相关工作多年。 概述 在之前的网游中的网络编程系列1:UDP vs. TCP中(推荐先看前面那篇),我们经过讨论得出:网游中传输数据应该使用UDP而不是TCP。我们选择UDP是为了不需要等
阅读全文
C#使用Redis集群缓存
摘要:C#使用Redis集群缓存 本文介绍系统缓存组件,采用NOSQL之Redis作为系统缓存层。 一、背景 系统考虑到高并发的使用场景。对于并发提交场景,通过上一章节介绍的RabbitMQ组件解决。对于系统高并发查询,为了提供性能减少数据库压力,我们加入缓存机制,可以不同层次加入缓存支持,本文主要介绍应
阅读全文
NET之全平台一体化
摘要:NET之全平台一体化的体验 一、前言 近来利用空闲时间研究了一下Xamarin的技术,想想既然提供了如此好的支持,就该尝试一切可能,来一个”大小通吃“。 何为全平台:APP包括Android、IOS、WP,WEB可在Window和Linux部署运行(进可攻,退可守) 二、简单实现 先来看张图吧 这个
阅读全文
表达式树动态拼接lambda
摘要:动态拼接lambda表达式树 前言 最近在优化同事写的代码(我们的框架用的是dapperLambda),其中有一个这样很普通的场景——界面上提供了一些查询条件框供用户来进行过滤数据。由于dapperLambda按条件查询时是传入表达式树的参数,这样比如其中查询条件有一个是审核状态,另外五个是模糊查询
阅读全文
面向接口可扩展框架之类型转化基础服务
摘要:面向接口可扩展框架之类型转化基础服务 新框架正在逐步完善,可喜可贺的是基础服务部分初具模样了,给大家分享一下 由于基础服务涉及面太广,也没开发完,这篇只介绍其中的类型转化部分,命名为类型转化基础服务,其实就是基础服务模块的类型转化子模块 说到类型转化必须要弄清楚.net的类型,类型都不清楚何来类型转
阅读全文
Ctrl-A全选
摘要:Ctrl-A全选这点事(C#,WinForm) 所有的文本框,不管单行多行都Ctrl-A全选就好了吧?是啊,很方便。Windows的软件基本都是这样。可为什么我们自己制作的WinForm就默认不是这样呢?谁知道呢,可能是WinForm饱受诟病,要改变一下,不想再封装太多默认功能吧。反正程序员自己加这
阅读全文
线程同步和多线程优先级
摘要:线程同步和多线程优先级 上个文章分享了一些多线程的一些基础的知识,今天我们继续学习。 一、Task类 上次我们说了线程池,线程池的QueueUserWorkItem()方法发起一次异步的线程执行很简单 但是该方法最大的问题是没有一个内建的机制让你知道操作什么时候完成,有没有一个内建的机制在操作完成后
阅读全文
c#编码规范
摘要:拿什么拯救你,我的代码--c#编码规范实战篇 此文为译文,原文地址请点击。本文通过重构一个垃圾代码,阐述了如何写出优秀的代码。开发人员及代码审核人员需按照此规范开发和审核代码。此规范以C#为例,JAVA的童鞋一并参考,C++的童鞋自行脑补吧。 简介 这篇文章的目的是展示如何将一段垃圾代码重构成一个干
阅读全文
C#如何在钉钉开发平台
摘要:C#如何在钉钉开发平台中创建部门 钉钉是阿里巴巴专为中小企业和团队打造的沟通、协同的多端平台,钉钉开放平台旨在为企业提供更为丰富的办公协同解决方案。通过钉钉开放平台,企业或第三方合作伙伴可以帮助企业快速、低成本的实现高质量的移动微应用,实现生产、管理、协作、运营的移动化。官网的列子往往都是java,
阅读全文
C# 使用Tuple传递多个参数
摘要:Tuple是基于.NET Framework 4.0 及以上版本才有的。微软称它为元组,如果有三个参数那就是三元组。如 Tuple(T1, T2, T3) Tuple的命名空间在 System 很短吧,也就是说只要是基于.NET Framework 4.0 及以上版本的,创建项目就可以直接在Visu
阅读全文
net平台下连接池
摘要:http://www.cnblogs.com/visionwang/archive/2012/11/16/2774203.html net平台下连接池概述 ADO.NET已经为我们提供这样的连接池管理,每个连接字符串产生一个连接池,设置了池的最大连接数,尽管你在DBConnection上使用clos
阅读全文
c#程序内存分配
摘要:c#程序内存分配 进程可使用内存数就是操作系统给进程分配的最大地址,一般的32位操作系统提供给用户地址最大都是3g(操作系统自己保留1g),windows由于商业目的,对于个人用户只提供了2g地址,要使用3g扩展需要对系统配置作修改。还有就是intel的32位芯片实际上是支持36位寻址能力的(64g
阅读全文
数组内存如何分配
摘要:第一个问题:int [] test = new test[100];我知道在堆中分配了100个单元的内存空间,但是在栈中存储的是堆中的地址,问栈中分配了几个单元的内存空间来存地址呢?我自己查了下栈中好像是只保存了堆中100个单元的首地址,不大确定,求解?还有就是如果栈中只分配了一个单元存储堆中首地址
阅读全文
IL来理解属性
摘要:IL来理解属性 阅读目录 概述: C#中如何定义一个属性 Student类 属性Name Main方法 实现get,set方法 性能 访问权限 回到最开始提出的问题 参考资料 .Net底层剖析目录章节 1.【深入浅出.Net IL】1.一个For循环引发的IL 2.【.Net底层剖析】2.stfld
阅读全文
C#开发Linux守护进程
摘要:用C#开发Linux守护进程 Linux守护进程(Daemon)是Linux的后台服务进程,它脱离了与控制终端的关联,直接由Linux init进程管理其生命周期,即使你关闭了控制台,daemon也能在后台正常工作。 一句话,为Linux开发与控制台无关的,需要在后台长时间不间断运行的“服务程序”,
阅读全文
Socket开发
摘要:Socket开发框架之消息的回调处理 伍华聪 2016-03-31 20:16 阅读:152 评论:0 Socket开发框架之消息的回调处理 伍华聪 2016-03-31 20:16 阅读:152 评论:0 Socket开发框架之数据加密及完整性检查 伍华聪 2016-03-29 22:39 阅读:
阅读全文
C#设备处理类操作
摘要:C#设备处理类操作 C#对于处理window操作系统下的设备有天然的优势,对于大多数设备读写等操作来说基本上够了,这里只讨论通过普通的大多数的设备的操作。涉及到两大类SerialPort类,Socket的一些操作。不一定好,但希望分享出去,让更多的人受益。。 由于设备的读写方式不同,串口,网口,us
阅读全文