liyonghui

导航

随笔分类 -  c#

c#
ThreadPool和Thread
摘要:private static void ThreadTest() { //新建ManualResetEvent对象并且初始化为无信号状态 ManualResetEvent eventX = new ManualResetEvent(false); ThreadPool.SetMaxThreads(3, 3); thr tt = new thr(15, eventX); for (int i = 0; i < 15; i++) { ThreadPool.QueueUserWorkItem(new WaitCallback(tt.ThreadProc), i); } //等待事件的完成,即线 阅读全文

posted @ 2012-12-11 13:25 李永辉 阅读(314) 评论(0) 推荐(0)

使用Task代替ThreadPool和Thread
摘要:一:Task的优势ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便。比如:1: ThreadPool不支持线程的取消、完成、失败通知等交互性操作;2: ThreadPool不支持线程执行的先后次序;以往,如果开发者要实现上述功能,需要完成很多额外的工作,现在,FCL中提供了一个功能更强大的概念:Task。Task在线程池的基础上进行了优化,并提供了更多的API。在FCL4.0中,如果我们要编写多线程程序,Task显然已经优于传统的方式。以下是一个简单的任务示例:staticvoid Main(string[] args) ... 阅读全文

posted @ 2012-12-11 13:15 李永辉 阅读(365) 评论(0) 推荐(0)

并发数据(锁)ReaderWriterLockSlim
摘要:并发数据(锁)ReaderWriterLockSlim 阅读全文

posted @ 2012-11-23 12:51 李永辉 阅读(1441) 评论(0) 推荐(0)

洗牌算法
摘要:洗牌算法 阅读全文

posted @ 2012-11-10 11:29 李永辉 阅读(157) 评论(0) 推荐(0)

ibatis传入固定参数 提高sql执行效率
摘要:<?xml version="1.0" encoding="utf-8" ?><sqlMap namespace="Account" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <alias> <typeAlias alias="ContentObject" type="Dao 阅读全文

posted @ 2012-09-21 18:45 李永辉 阅读(284) 评论(0) 推荐(0)

StrToUnicode C#语言如何将汉字转换成Unicode字符
摘要:public static string StrToUnicode(string str) { StringBuilder sb = new StringBuilder(); if (!string.IsNullOrEmpty(str)) { for (int i = 0; i < str.Length; i++) { sb.Append( "\\u" + ((int)str[i]).ToString("x")); } } return sb.ToString(); } 阅读全文

posted @ 2012-09-21 18:25 李永辉 阅读(286) 评论(0) 推荐(0)

网站性能监控 System.Diagnostics.Stopwatch
摘要:网站性能是我们前台开发要解决的问题,程序线上发布后,有时候我们会发现执行的速度非常慢,如何监控线上程序代码执行情况,究竟是那一段代码导致程序执行缓慢,这是我们需要对代码程序进行监控。微软已经给我们提供了这样的一个用于监控程序所需时间的一个类System.Diagnostics.Stopwatch。第一步:实例化一个监控对象。System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();第二步:在要监控的代码前开始监控。watch.Start();第三步:输出每段代码执行的时间,这里使用的lognet记录程序执行的 阅读全文

posted @ 2012-08-20 16:14 李永辉 阅读(727) 评论(0) 推荐(0)

String.IsNullOrEmpty和"".length>0 那个更高效
摘要:今天在浏览DevTopics的博客时,发现一篇介绍String的随笔,介绍的是判断一个String变量是否为空时,String的一个方法和一个属性之间的比较,给一个 string变量 's', 下面那个表达式更快? 1. String.IsNullOrEmpty( s ) 2. s == null || s.Length == 0 如果你猜第二个,那么你是对的. 它将比String.IsNullOrEmpty方法快15%,但这种也是以百万分之一秒来衡量的! 这里有一个简单的例子来比较2种方式:01using System;0203namespace StringNullEmpt 阅读全文

posted @ 2011-08-08 11:55 李永辉 阅读(842) 评论(0) 推荐(0)

使用策略设计模式,反射,解决商城系统中的商品折扣问题
摘要:首先,我定义了一个接口IStrategy,这个接口提供一个获取折扣后价格的规范,方法签名为:double GetDiscount(double originalPrice); 然后,我写了两个IStrategy的实现类,分别作为两种不同的打折方案。 打折方案一:半价折扣 1 /// <summary> 2 /// 打折方案1 3 /// </summary> 4 public class DiscountSlnOne : IStrategy 5 { 6 /// <summary> 7 /// 半价折扣 8 /// </summary> 9 /// 阅读全文

posted @ 2011-08-05 18:21 李永辉 阅读(922) 评论(1) 推荐(0)

不定的多条件的过滤
摘要:不定条件的,多条件的过滤删除,显然如果用if...else可以实现可是,现在的要求是实现条件的随意添加,这样的程序,我们怎么样实现灵活的扩展性呢?准备用装饰模式搞一下》代码如下:定义一个接口:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ interface IFilterCondition { Ware Filter(); }}实现一个条件:using System;using System.Collections. 阅读全文

posted @ 2011-04-18 18:04 李永辉 阅读(330) 评论(1) 推荐(0)

C#中定义数组
摘要:一、一维: int[] numbers = new int[]{1,2,3,4,5,6}; //不定长 int[] numbers = new int[3]{1,2,3};//定长 二、多维 int[,] numbers = new int[,]{{1,2,3},{1,2,3}}; //不定长 int[,] numbers = new int[2,2]{{1,2},{1,2}}; //定长 三、例子 A:int[] mf1=new int[6]; //注意初始化数组的范围,或者指定初值; //包含6个元素的一维整数数组,初值1,2,3,4,5,6 int[] mf2=new int[6]{1, 阅读全文

posted @ 2011-04-18 14:23 李永辉 阅读(1022) 评论(0) 推荐(0)