2009年8月30日

.NET Framework中的委托:了解异步委托(我的第一篇博文)

摘要: 委托是.NET框架支持的一种特殊类型。它可以被实例化,并且可以通过任何与方法签名相匹配的目标方法与实例组合形成。C#允许使用 delegate 关键字来创建特殊类,我们称这个特殊类为委托类。这些委托类的实例则被称为委托对象。从概念上来讲,一个委托对象是一个或者多个方法(静态或实例)的引用。因此我们可以像调用一个方法那样,来调用一个委托。这就导致对一个方法的调用,但是需要注意的是,对这些方法的调用是通过调用委托对象的同一个线程来完成的。我们把这个作为一个同步调用。但是,在对一个方法进行同步调用时,调用线程会在调用活动时阻塞。当线程被阻塞时,它可以创建其他的线程,事实上,这个时候,CPU仍有可能处于空闲。因此,新创建的这些线程尽管有可能没有占用CPU,但是他们这是在浪费资源,这是不经济的。当一个线程对一个方法做异步调用时,这个调用能够立即返回。调用线程不会被阻塞,它可以继续做其他的工作。.NET底层结构为这个方法调用生成一个线程并且通过调用代码传递参数。这个异步线程可以在调用线程进行的同时,运行该方法。如果这个方法产生了一些数据并且返回了这些值,那么调用线程必须能够访问这些数据。.NET异 阅读全文

posted @ 2009-08-30 21:11 火柴没帽 阅读(557) 评论(0) 推荐(0) 编辑

导航