第三十八 ASP.NET多线程编程,二

*摘要

。线程池

。ASP.NET中多线程使用实例

-利用多线程实现数组排序

-利用多线程实现搜索引

-在线用户检测

-利用多线程实现端口扫描

-利用多线程对TreeView填充

* 线程池

。许多应用程序创建的线程都要在休眠状态中消耗大量时间,以等待事件发生。这样会浪费资源。

。线程池通过为应用程序提供一个由系统管理的辅助线程池使您可以更为有效地使用线程。一个线程监视排到线程池的若干个等待操作的状态。当一

个等待操作完成时,线程池中一个辅助线程就会执行对应的回调函数。

。实际上,如果要执行一些需要多个线程的较短任务,则使用ThreadPool类是利用多个线程的最方便且最好的方法。使用线程池使系统能够不仅针对

此进程而且针对计算机上的其他进程(您的应用程序对其一无所知)对此情况进行优化以达到更好的吞吐量。使用线程池使系统能够在考虑到计算机

上的所有当前进程后对线程时间片进行优化。

。线程池在首次创建ThreadPool类的实例时被创建。线程池具有每个可用处理器25个线程的默认限制。

。可以将与等待操作不相关的工作项排列到线程池。若要请求由线程池中的一个线程来处理工作项,请调用QueueUserWorkItem方法。此方法将对将

被从线程池中选定的线程调用的方法或委托的引用作参数。一个工作项排入队列后就无法再取消它。