随笔分类 -  c#

摘要:C# 温故而知新: 线程篇(四)线程同步篇 (中):同步工具类的介绍1 上篇回顾2 继续介绍基元内核模式中的 monitor类3 同步句柄:WaitHandle4 EventWaitHandle,AutoResetEvent和ManualResetEvent5 同步互斥mutex类6 简单说明下mutex和monitor的区别7 选择我们需要的同步工具8 本章总结 1 上篇回顾 很抱歉好久没写博客了,由于工作太忙,所以最近一段时间落下了,让我们开始上一篇向大家介绍了下线程同步中的一些重要概念包括:基元内核模式,基元用户模式,原子性,然后由陆续介绍了基元用户模式中的Validated,Inte. 阅读全文
posted @ 2012-11-06 14:16 逆时针の风 阅读(9067) 评论(31) 推荐(23) 编辑
摘要:C# 温故而知新: 线程篇(三)线程同步篇 (上)线程同步中的一些重要概念 临界区(共享区)的概念基元用户模式 基元内核模式原子性操作非阻止同步阻止同步详解Thread类 中的VolatileRead和VolatileWrite方法和Volatile关键字的作用 Volatile关键字的作用介绍下Interlocked介绍下Lock关键字详解ReaderWriterLock 类本章总结参考文献1.线程同步中的一些重要概念1.1临界区(共享区)的概念 在多线程的环境中,可能需要共同使用一些公共资源,这些资源可能是变量,方法逻辑段等等,这些被多个线程共用的区域统称为临界区(共享区),聪明的你肯定. 阅读全文
posted @ 2012-08-19 23:58 逆时针の风 阅读(12877) 评论(38) 推荐(26) 编辑
摘要:C# 温故而知新: 线程篇(二)线程池和异步线程目录:1 什么是CLR线程池?2 简单介绍下线程池各个优点的实现细节3 线程池ThreadPool的常用方法介绍4 简单理解下异步线程5 异步线程的工作过程和几个重要的元素6 有必要简单介绍下Classic Async Pattern 和Event-based Async Pattern7 异步线程的发展趋势以及.net4.5异步的简化8 本章示例 自定义一个简单的线程池 Asp.net异步IHttpAsyncHandler示例9 本章总结1 什么是CLR线程池?在上一章中通过Thread对象创建我们所需要的线程,但是创建线程的开销是很大的,在需 阅读全文
posted @ 2012-07-07 18:44 逆时针の风 阅读(16092) 评论(42) 推荐(40) 编辑
摘要:c# 温故而知新: 线程篇(一)Thread目录:目录:1 线程基础的简单介绍2 线程同步与线程异步的简单介绍3 前台线程与后台线程的简单介绍4 细说下Thread 最为关键的构造函数5 细说下Thread 的 Sleep方法6细说下Thread 的 join 方法7细说下Thread 的 Abort和 Interrupt方法8细说下Thread 的 Suspend,Resume方法9简单了解下Thread 的 一些重要属性10简单示例 多线程从一个图片中截取部分图片11 本章总结1 线程基础的简单介绍首先让我们翻开书本来了解下线程的一些基础知识:1 线程有时被称为轻量级进程,是程序执行流的最 阅读全文
posted @ 2012-06-10 00:48 逆时针の风 阅读(33163) 评论(76) 推荐(106) 编辑
摘要:C# 温故而知新:Stream篇(七)NetworkStream目录:NetworkStream的作用简单介绍下TCP/IP 协议和相关层次简单说明下 TCP和UDP的区别简单介绍下套接字(Socket)的概念简单介绍下TcpClient,TcpListener,IPEndPoint类的作用使用NetworkStream的注意事项和局限性NetworkStream的构造NetworkStream的属性NetworkStream的方法NetwrokStream的简单示例 创建一个客户端向服务端传输图片的小示例本章总结1.NetworkStream的作用和先前的流有所不同,NetworkStre. 阅读全文
posted @ 2012-05-17 03:32 逆时针の风 阅读(32427) 评论(45) 推荐(35) 编辑
摘要:C# 温故而知新:Stream篇(六)BufferedStream目录:简单介绍一下BufferedStream如何理解缓冲区?BufferedStream的优势从BufferedStream 中学习装饰模式 如何理解装饰模式 再次理解下装饰模式在Stream中的作用BufferedStream的构造BufferedStream的属性BufferedStream的方法简单示例:利用socket 读取网页并保存在本地本章总结1 简单介绍一下BufferedStream在前几章的讲述中,我们已经能够掌握流的基本特性和特点,一般进行对流的处理时系统肩负着IO所带来的开销,调用十分频繁,这... 阅读全文
posted @ 2012-04-25 20:40 逆时针の风 阅读(17958) 评论(30) 推荐(34) 编辑
摘要:C# 温故而知新:Stream篇(五)MemoryStream目录:1 简单介绍一下MemoryStream2 MemoryStream和FileStream的区别3 通过部分源码深入了解下MemoryStream4 分析MemorySteam最常见的OutOfMemory异常5 MemoryStream 的构造6 MemoryStream 的属性7 MemoryStream 的方法8 MemoryStream 简单示例 : XmlWriter中使用MemoryStream9 MemoryStream 简单示例 :自定义一个处理图片的HttpHandler10 本章总结简单介绍一下Memory 阅读全文
posted @ 2012-04-14 03:21 逆时针の风 阅读(61059) 评论(22) 推荐(43) 编辑
摘要:C# 温故而知新:Stream篇(四)FileStream目录:如何去理解FileStream?FileStream的重要性FileStream常用构造函数(重要)非托管参数SafeFileHandle简单介绍FileStream常用属性介绍FileStream常用方法介绍FileStream示例1:*文件的新建和拷贝(主要演示文件同步和异步操作)FileStream示例2:*实现文件本地分段上传本章总结如何去理解FileStream?通过前3章的学习相信大家对于Stream已经有一定的了解,但是又如何去理解FileStream呢?请看下图 我们磁盘的中任何文件都是通过2进制组成,最为直观的. 阅读全文
posted @ 2012-04-03 05:28 逆时针の风 阅读(24168) 评论(38) 推荐(50) 编辑
摘要:C# 温故而知新:Stream篇(三)TextWriter 和 StreamWriter目录:为何介绍TextWriter?TextWriter的构造,常用属性和方法 IFormatProvider的简单介绍如何理解StreamWriter?StreamWriter属性StreamWriter示例本章总结为何介绍TextWriter?就像上篇讲述的一样,对于重要的基础技术,我们一定要刨根问底,这样在面对将来可能很复杂的业务或技术时才能游刃有余,甚至可以创新出新的解决方案,言归正传,想了解StreamWriter 必须了解其父亲TextWriter的结构和使用方法。那么微软为什么要创建立这个抽象 阅读全文
posted @ 2012-03-25 20:14 逆时针の风 阅读(17993) 评论(13) 推荐(25) 编辑
摘要:C# 温故而知新:Stream篇(二)TextReader 和StreamReader目录:为什么要介绍 TextReader?TextReader的常用属性和方法TextReader 示例从StreamReader想到多态简单介绍下Encoding 编码StreamReader 的定义及作用StreamReader 类的常用方法属性StreamReader示例本章总结为什么要介绍 TextReader?首先让我们来理解下什么是TextReader,从字面上的意思入手的话,大家就会恍然大悟了一个对于Text的读取器,可是又是怎么读取的呢?聪明的你肯定会想到,当然是通过连续的字符进行读取, 为什 阅读全文
posted @ 2012-03-19 00:11 逆时针の风 阅读(34085) 评论(16) 推荐(36) 编辑
摘要:C# 温故而知新:Stream篇(—) 目录:什么是Stream?什么是字节序列?Stream的构造函数Stream的重要属性及方法Stream的示例Stream异步读写Stream 和其子类的类图本章总结什么是Stream?MSDN 中的解释太简洁了: 提供字节序列的一般视图(我可不想这么理解,这必定让我抓狂,我理解的流是向自然界的河流那样清澈而又美丽,c#中的流也是一样,许多技术或者说核心技术都需要流的帮忙)那什么是字节序列呢?其实简单的来理解的话字节序列指的是:字节对象都被存储为连续的字节序列,字节按照一定的顺序进行排序组成了字节序列那什么关于流的解释可以抽象为下列情况:打个比方:一条河 阅读全文
posted @ 2012-03-17 03:12 逆时针の风 阅读(68628) 评论(59) 推荐(128) 编辑
摘要:最近公司从微软接了许多小项目,导致了人手不够,特别是数据库后台和前台脱节严重,部分客户已经发飙,无奈之下,昨天下午老板和我们teamLeader 之间开了个紧急会议,商量应对之道。由于前台的效率比后台高(后台大牛走的走,已经所剩无几,许多实习生或者是刚入职的),所以在下周投入后台工作之前,我向老板提出了“fakeDataTool”的理念,就是一个制造临时假数据的微型框架,能够解决燃眉之急,老板曾经是个伟大的架构师,所以他欣然接受这一个想法,于是一个微型框架的第一个版本在今天凌晨5点诞生了。。。这个版本完成的功能有:1: 制造一个类的对象,并且属性赋值 (第一本版本只有已经实现了 class , 阅读全文
posted @ 2012-03-03 21:15 逆时针の风 阅读(2641) 评论(13) 推荐(2) 编辑
摘要:我们在项目经常会碰到一些特殊需求 例如下拉框是复选的,查询条件是根据下拉框中复选项进行拼接看到此图后大家肯定会说,这很简单嘛将所有的选项 拼成“'1-3','5-9'” 然后放到 in 的字句后面,一查就出来了。这样做的确在逻辑上没有问题,可是大家有没有想过这个问题,过度的和业务耦合虽然能够解决现在的需求但是却牺牲了代码优雅和可维护性其实本文的目的是想利用Expression表达式在linq查询中实现一个优雅的解决方案,同时也会给大家一个用Expression去拼接sql的思路先上代码 public static Expression<Func<T, 阅读全文
posted @ 2012-02-23 02:53 逆时针の风 阅读(8659) 评论(18) 推荐(8) 编辑
摘要:由于传统的反射性能不是很好,所以许多高手都想尽方法提高反射的性能以下DynamicUtilites编是其中一个(和.net4.0中的那个Dynamic反射不同)首先在项目中添加DynamicUtilites项目DynamicUtilites项目下有三个文件 Dynamic.csDynamicComparer.csDynamicEmit.cs如果由于精力有限无法了解该反射辅助类的具体实现原理,请大家原谅 ^^,大致是将原有反射代码的封装和优化,有空我会去了解下该辅助类的源码以下简单介绍如何使用该反射类先建立一个ICallable接口,注意是泛型接口s代码Code highlighting pro 阅读全文
posted @ 2010-06-14 17:58 逆时针の风 阅读(1560) 评论(1) 推荐(1) 编辑
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace LmbdaText 7 { 8 class Program 9 { 10 staticint[] numbers =newint[]{5,3,4,2,1,... 阅读全文
posted @ 2010-06-05 13:10 逆时针の风 阅读(1547) 评论(3) 推荐(0) 编辑