摘要:        
要使用多线程开发,必须非常熟悉Thread的使用,而且在开发过程中可能会面对很多未知的问题。为了简化开发,.NET 4.0 特别提供一个并行编程库System.Threading.Tasks,它可以简化并行开发,你无需直接跟线程或线程池打交道,就可以简单建立多线程应用程序。此外,.NET还提供了新的一组扩展方法PLINQ,它具有自动分析查询功能,如果并行查询能提高系统效率,则同时运行,如果查询未能从并行查询中受益,则按原顺序查询。下面将详细介绍并行操作的方式。7.1 泛型委托使用并行编程可以同时操作多个委托,在介绍并行编程前先简单介绍一下两个泛型委托System.Func<>与Sy    阅读全文
        
            posted @ 2012-10-16 12:13
W晴空
阅读(299)
评论(0)
推荐(0)
        
            
        
        
摘要:        
从ADO.NET 2.0开始,SqlCommand就新增了几个异步方法执行SQL命令。相对于同步执行方式,它使主线程不需要等待数据库的返回结果,在使用复杂性查询或批量插入时将有效提高主线程的效率。使用异步SqlCommand的时候,请注意把ConnectionString 的Asynchronous Processing 设置为 true 。注意:SqlCommand异步操作的特别之处在于线程并不依赖于CLR线程池,而是由Windows内部提供,这比使用异步委托更有效率。但如果需要使用回调函数的时候,回调函数的线程依然是来自于CLR线程池的工作者线程。SqlCommand有以下几个方法支持异步    阅读全文
        
            posted @ 2012-10-16 12:12
W晴空
阅读(384)
评论(0)
推荐(0)
        
            
        
        
摘要:        
引言本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发。其中委托的BeginInvoke方法以及回调函数最为常用。而 I/O线程可能容易遭到大家的忽略,其实在开发多线程系统,更应该多留意I/O线程的操作。特别是在ASP.NET开发当中,可能更多人只会留意在客户端使用Ajax或者在服务器端使用UpdatePanel。其实合理使用I/O线程在通讯项目或文件下载时,能尽量降低IIS的压力。并行编程是Framework4.0中极力推广的异步操作方式,更值得更深入地学习。希望本篇文章能对各位的学习研究有所帮助,当中有所错漏的地方敬请点评。    阅读全文
        
            posted @ 2012-10-16 12:11
W晴空
阅读(355)
评论(0)
推荐(0)
        
            
        
        
摘要:        
4.1 关于CLR线程池使用ThreadStart与ParameterizedThreadStart建立新线程非常简单,但通过此方法建立的线程难于管理,若建立过多的线程反而会影响系统的性能。有见及此,.NET引入CLR线程池这个概念。CLR线程池并不会在CLR初始化的时候立刻建立线程,而是在应用程序要创建线程来执行任务时,线程池才初始化一个线程。线程的初始化与其他的线程一样。在完成任务以后,该线程不会自行销毁,而是以挂起的状态返回到线程池。直到应用程序再次向线程池发出请求时,线程池里挂起的线程就会再度激活执行任务。这样既节省了建立线程所造成的性能损耗,也可以让多个任务反复重用同一线程,从而在应    阅读全文
        
            posted @ 2012-10-16 12:09
W晴空
阅读(379)
评论(0)
推荐(0)
        
            
        
        
摘要:        
3.1 使用ThreadStart委托这里先以一个例子体现一下多线程带来的好处,首先在Message类中建立一个方法ShowMessage(),里面显示了当前运行线程的Id,并使用Thread.Sleep(int ) 方法模拟部分工作。在main()中通过ThreadStart委托绑定Message对象的ShowMessage()方法,然后通过Thread.Start()执行异步方法。 1 public class Message 2 { 3 public void ShowMessage() 4 { 5 ...    阅读全文
        
            posted @ 2012-10-16 12:07
W晴空
阅读(277)
评论(0)
推荐(0)
        
            
        
        
摘要:        
2.1 System.Threading.Thread类System.Threading.Thread是用于控制线程的基础类,通过Thread可以控制当前应用程序域中线程的创建、挂起、停止、销毁。它包括以下常用公共属性: 属性名称说明CurrentContext获取线程正在其中执行的当前上下文。CurrentThread获取当前正在运行的线程。ExecutionContext获取一个 ExecutionContext 对象,该对象包含有关当前线程的各种上下文的信息。IsAlive获取一个值,该值指示当前线程的执行状态。IsBackground获取或设置一个值,该值指示某个线程是否为后台线程。.    阅读全文
        
            posted @ 2012-10-16 12:05
W晴空
阅读(271)
评论(0)
推荐(1)
        
            
        
        
摘要:        
1. 1 进程、应用程序域与线程的关系进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。进程之间是相对独立的,一个进程无法访问另一个进程的数据(除非利用分布式计算方式),一个进程运行的失败也不会影响其他进程的运行,Windows系统就是利用进程把工作划分为多个独立的区域的。进程可以理解为一个程序的基本边界。应用程序域(AppDomain)是一个程序运行的逻辑区域,它可以视为一个轻量级的进程,.NET的程序集正是在应用程序域中运行的,一个进程可以包含有多个应用程序域,一个应用程序域也可以包含多个程序集。在一个应用程序域中包含了一个或多个上下文conte    阅读全文
        
            posted @ 2012-10-16 12:04
W晴空
阅读(275)
评论(0)
推荐(0)
        
                    
                
        
浙公网安备 33010602011771号