摘要: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); } //等待事件的完成,即线
阅读全文
摘要:一:Task的优势ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便。比如:1: ThreadPool不支持线程的取消、完成、失败通知等交互性操作;2: ThreadPool不支持线程执行的先后次序;以往,如果开发者要实现上述功能,需要完成很多额外的工作,现在,FCL中提供了一个功能更强大的概念:Task。Task在线程池的基础上进行了优化,并提供了更多的API。在FCL4.0中,如果我们要编写多线程程序,Task显然已经优于传统的方式。以下是一个简单的任务示例:staticvoid Main(string[] args) ...
阅读全文
摘要:并发数据(锁)ReaderWriterLockSlim
阅读全文
摘要:<?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
阅读全文
摘要: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(); }
阅读全文
摘要:网站性能是我们前台开发要解决的问题,程序线上发布后,有时候我们会发现执行的速度非常慢,如何监控线上程序代码执行情况,究竟是那一段代码导致程序执行缓慢,这是我们需要对代码程序进行监控。微软已经给我们提供了这样的一个用于监控程序所需时间的一个类System.Diagnostics.Stopwatch。第一步:实例化一个监控对象。System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();第二步:在要监控的代码前开始监控。watch.Start();第三步:输出每段代码执行的时间,这里使用的lognet记录程序执行的
阅读全文
摘要:今天在浏览DevTopics的博客时,发现一篇介绍String的随笔,介绍的是判断一个String变量是否为空时,String的一个方法和一个属性之间的比较,给一个 string变量 's', 下面那个表达式更快? 1. String.IsNullOrEmpty( s ) 2. s == null || s.Length == 0 如果你猜第二个,那么你是对的. 它将比String.IsNullOrEmpty方法快15%,但这种也是以百万分之一秒来衡量的! 这里有一个简单的例子来比较2种方式:01using System;0203namespace StringNullEmpt
阅读全文
摘要:首先,我定义了一个接口IStrategy,这个接口提供一个获取折扣后价格的规范,方法签名为:double GetDiscount(double originalPrice); 然后,我写了两个IStrategy的实现类,分别作为两种不同的打折方案。 打折方案一:半价折扣 1 /// <summary> 2 /// 打折方案1 3 /// </summary> 4 public class DiscountSlnOne : IStrategy 5 { 6 /// <summary> 7 /// 半价折扣 8 /// </summary> 9 ///
阅读全文
摘要:不定条件的,多条件的过滤删除,显然如果用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.
阅读全文
摘要:一、一维: 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,
阅读全文