上一页 1 ··· 6 7 8 9 10 11 12 13 14 15 下一页
摘要: 引言如果你看过了 C#中的委托和事件 一文,我想你对委托和事件已经有了一个基本的认识。但那些远不是委托和事件的全部内容,还有很多的地方没有涉及。本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访问器、异常处理、超时处理和异步方法调用等内容。为什么要使用事件而不是委托变量?在 C#中的委托和事件 中,我提出了两个为什么在类型中使用事件向外部提供方法注册,而不是直接使用委托变量的原因。主要是从封装性和易用性上去考虑,但是还漏掉了一点,事件应该由事件发布者触发,而不应该由客户端(客户程序)来触发。这句话是什么意思呢?请看下面的范例:NOTE:注意这里术语的变化,当我们单独谈 阅读全文
posted @ 2011-04-28 16:40 Kingdom_0 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 引言1.理解多线程2. 线程异步与线程同步3.创建多线程应用程序3.1通过System.Threading命名空间的类构建3.1.1异步调用线程3.1.2并发问题3.1.3线程同步3.2通过委托构建多线程应用程序3.2.1线程异步3.2.2线程同步3.3BackgroundWorker组件4.总结引言 随着双核、四核等多核处理器的推广,多核处理器或超线程单核处理器的计算机已很常见,基于多核处理的编程技术也开始受到程序员们普遍关注。这其中一个重要的方面就是构建多线程应用程序(因为不使用多线程的话,开发人员就不能充分发挥多核计算机的强大性能)。本文针对的是构建基于单核计算机的多线程应用程序,目的在 阅读全文
posted @ 2011-04-28 13:56 Kingdom_0 阅读(7008) 评论(1) 推荐(2) 编辑
摘要: 一、C# Thread类的基本用法通过System.Threading.Thread类可以开始新的线程,并在线程堆栈中运行静态或实例方法。可以通过Thread类的的构造方法传递一个无参数,并且不返回值(返回void)的委托(ThreadStart),这个委托的定义如下:[ComVisibleAttribute(true)]public delegate void ThreadStart()我们可以通过如下的方法来建立并运行一个线程。usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; 阅读全文
posted @ 2011-04-28 13:51 Kingdom_0 阅读(492) 评论(0) 推荐(0) 编辑
摘要: Regex是从字符窗中查找匹配字符串的应用类。通过Regex,编程人员能够非常方便的从一段数据中提取自己所需要的数据信息。举一个简单的例子,让大家对Regex有个大概的了解:Regex regex = new Regex(@"d+"); Match m = regex.Match("fox 9212gold"); Console.WriteLine(m.Value.ToString()); 结果很明显,regex为我们找到了字符串”fox 9212gold”中的数字字符串,输出结果为”9212” .对Regex有了一个基本的概念之后,我需要告诉你一个非常 阅读全文
posted @ 2011-04-26 16:44 Kingdom_0 阅读(715) 评论(0) 推荐(0) 编辑
摘要: 当使用大量的正则表达式进行静态方法调用时。 默认情况下,正则表达式引擎将缓存 15 个最近使用的静态正则表达式。 如果应用程序使用的静态正则表达式超过 15 个,则必须重新编译某些正则表达式。 为了防止执行此类重新编译,您可以将 Regex.CacheSize 属性增加到适当的值。 当应用程序使用先前已编译的正则表达式实例化新的 Regex 对象时。 例如,下面的代码定义一个正则表达式,以定位某个文本流的各个行中重复的单词。 虽然本示例使用一个正则表达式,但它将实例化一个新的 Regex 对象来处理每行文本。 这将导致在每次循环迭代时都重新编译此正则表达式。 复制 StreamReader . 阅读全文
posted @ 2011-04-26 16:37 Kingdom_0 阅读(584) 评论(0) 推荐(0) 编辑
摘要: 学习工具:下载一个例子string value="123";Regex re=new Regex(^[0-9]{1,2}$);if(!re.IsMatch(value)){ }上面的代码用来判断字符串以数字开头和结尾,并且最多有2位。Regex re=new Regex(^[0-9]{1,2}$);解释:这句:声明一个新的Regex, ^表示:匹配字符串开始字符$表示:匹配结尾字符。[0-9]:匹配的数据类型。和\d异曲同工。{1,2}:匹配数据重复的次数。在这里表示出现了一次或两次详解:一:Regex语法(1)^、$匹配数据:1234567;Regex: ^[0-9]结果 阅读全文
posted @ 2011-04-26 14:55 Kingdom_0 阅读(1772) 评论(0) 推荐(0) 编辑
摘要: //今天DateTime.Now.Date.ToShortDateString();//昨天,就是今天的日期减一DateTime.Now.AddDays(-1).ToShortDateString();//明天,同理,加一DateTime.Now.AddDays(1).ToShortDateString();//本周(要知道本周的第一天就得先知道今天是星期几,从而得知本周的第一天就是几天前的那一天,要注意的是这里的每一周是从周日始至周六止DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWe 阅读全文
posted @ 2011-04-25 18:00 Kingdom_0 阅读(299) 评论(0) 推荐(0) 编辑
摘要: C#的Trace类提供一组帮助跟踪代码执行情况的方法和属性,使用是非常方便的,具体到输出到什么地方,取决于TraceListener的类型,系统自带了三种类型:System.Diagnostics.DefaultTraceListenerSystem.Diagnostics.EventLogTraceListenerSystem.Diagnostics.TextWriterTraceListener有时候我们想自己定义输出类型,比如输出到数据库,输出到socket等等,这就需要自定义TraceListener,这个非常容易,只需要简单的继承System.Diagnostics.TraceLis 阅读全文
posted @ 2011-04-25 17:32 Kingdom_0 阅读(2125) 评论(1) 推荐(0) 编辑
摘要: 1、Queue定义System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除。2.优点1、能对集合进行顺序处理(先进先出)。2、能接受null值,并且允许重复的元素。3. Queue的构造器构造器函数注释Queue ()初始化 Queue 类的新实例,该实例为空,具有默认初始容量(32)并使用默认增长因子(2.0)。Queue (ICollection)初始化 Queue 类的新实例,该实例包含从指定集合复制的元素,具有与所复制的元素数相同的初始容量并使用默认增长因子。Queue (Int32)初始化 Queue 类的 阅读全文
posted @ 2011-04-25 15:55 Kingdom_0 阅读(587) 评论(0) 推荐(0) 编辑
摘要: 1、Stack定义System.Collections.Stack类表示对象的简单的后进先出非泛型集合。2.优点1、后进先出的集合。2、Stack 能接受空引用作为有效值并且允许重复的元素3. Stack的构造器构造器函数注释Stack ()初始化 Stack 类的新实例,该实例为空并且具有默认初始容量。Stack (ICollection)初始化 Stack 类的新实例,该实例包含从指定集合复制的元素并且具有与所复制的元素数相同的初始容量。Stack (Int32)初始化 Stack 类的新实例,该实例为空并且具有指定的初始容量或默认初始容量(这两个容量中的较大者)。4、Stack的属性属性 阅读全文
posted @ 2011-04-25 15:42 Kingdom_0 阅读(560) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 15 下一页