• 【.NET深呼吸】线程信号量(Semaphore)

    Semaphore类可以控制某个资源允许访问的线程数,Semaphore有命名式的,也有不命名的;如果不考虑跨进程工作,一般在代码中使用不命名方式即可。 信号量有点类似于等待句柄,某个线程如果调用了WaitOne方法,这个线程就会暂停,并且等待有可用的信号量时才会继续执行;...

    2018-06-23 23:03:48

  • 菜鸟学习Ado.net笔记一:Ado.net学习之SqlHelper类

    1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Data.SqlClient; 5 using System.Data; 6 using Microsoft.Win32; 7 8 namespace SqlHelp 9 { 10 /// summary 11 /// 定义SqlParameter所需的参数对象 12 /// /summary 13 p...

    2018-06-23 23:03:44

  • WPF Canvas 画区域

    有时候需要实现类似于QQ截图那样的选择区域功能,这里的区域可以是一条线,圆,矩形等等 实现原理就是一个Canvas做蒙板,然后canvas的三个事件,MouseLeftButtonDown,MouseMove,MouseLeftButtonUp。非常easy! 首先,你要有个canvas Canvas Name= " videocanvas " He...

    2018-06-23 23:03:43

  • 在Visual Studio中使用活动图描述业务流程

    当希望描述某个流程的时候,用活动图表示。 在项目中添加一个名称为"Shopping"的文件夹。 把"Orders Model"这个UML类图拖放到Shopping文件夹中。 先创建一个有关购物的活动图 。 在Shopping文件夹下创建一个名称为"Browse Toys"的UML活动图。 把一个初始节点拖动到主界...

    2018-06-23 23:03:42

  • 在Visual Studio中使用用例图描述系统与参与者间的关

    "用例图"用来描述谁用系统,用系统做什么。用例图不涉及使用细节,只用来描述使用人员和系统的关系,也不涉及行动的顺序。一起来体验。 使用Visual Studio 2012创建解决方案。 创建一个空白、名称为"TailspinToys"的解决方案。 右键解决方案,点击"添加","添加新项目"...

    2018-06-23 23:03:38

  • 类的扩展之 DataReader的扩展

    看了关于DataReader的扩展,发现能节省很多代码。从数据库读取数据最原始方法就是while()然后做循环,如果数据库添加一个字段那么你所有读取数据库的方法全部添加。通过扩展这个类就摆脱了这种令人恶心的方式,关于效率我进行测试,当读取不多的时候效率相差不大,当读...

    2018-06-23 23:03:37

  • 开始让自己习惯写文章

    注册博客园也挺久了,从学校到现在出来工作差不多一年了。 每次来博客园,都是看别人的文章,很感谢博客园里的大神,这么无私的跟大家分享自己的技术 和在开发中的经验心得,让我也学习了不少东西。我也很想和大家分享和交流自己的开发经验, 但我只是一个初出茅庐的初...

    2018-06-23 23:03:32

  • 更加详细的Log4net的配置

    请转到周金桥的文章 http://blog.csdn.net/zhoufoxcn/article/details/6029021...

    2018-06-23 23:03:28

  • 在线捉鬼游戏开发之三 - 业务对象核心代码编写与单元

    ----------- 回顾 分割线----------- 系列之一讲述了游戏规则,系列之二讲述了旧版的前台效果、代码中不好的地方、以及新版的改进核心,此篇开始就是新版代码编写全过程。此系列旨在开发类似谁是卧底+杀人游戏的 捉鬼游戏 在线版, 记录从分析游戏开始的开发全过程 ,...

    2018-06-23 23:03:16

  • C#之Ref,Out以及TryParse()的用法

    ref和out用法很简单,我记下来也提醒自己要用更好的方式去写代码,不要让代码过于臃肿,让人看得头痛。直接写 ref:ref关键字就是让参数进行传递,但是需要初始化,而out不需要初始化参数 ref用法 : private static void Main( string [] args) { User user = new Use...

    2018-06-23 23:03:26

2