摘要: 引言如果你看过了 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) 编辑