首页 火币pro官网下载文章正文

C# 多线程ThreadPool用法举例

火币pro官网下载 2022年10月21日 11:02 64 Connor

概述

ThreadPool是.Net Framework 2.0版本中出现的。自从Task出来以后,ThreadPool已经很少用了,但是一些老的代码或者一些古老的程序猿还是会用到他,所以我们可以不用它,但是还是有必须学习和了解他.

ThreadPool用法举例

publicstaticvoidThreadFuc( objectstr ) {Console.WriteLine( $"线程Id是 {Thread.CurrentThread.ManagedThreadId}, {str}: {DateTime.Now}" ); Thread.Sleep( 1000); }

运行结果:

我们看时间差不多在同一时间完成了,如果不开启线程:则前后需要10秒钟

QueueUserWorkItem有两个重载,分别是带参数和不带参数的

展开全文

带参数的解释如下:

ThreadPool类的方法

SetMaxThreads用来设置可以同时处于活动状态的线程池的请求数目。所有大于此数目的请求将保持排队状态,直到线程池线程变为可用。函数原型如下

线程池中的线程执行完指定的方法后并不会自动消除,而是以挂起状态返回线程池,如果应用程序再次向线程池发出请求,那么处以挂起状态的线程就会被激活并执行任务,而不会创建新线程,这就节约了很多开销。只有当线程数达到最大线程数量,系统才会自动销毁线程。因此,使用线程池可以避免大量的创建和销毁的开支,具有更好的性能和稳定性,其次,开发人员把线程交给系统管理,可以集中精力处理其他任务。

发表评论

火币交易所(huobi) | 火币全球站官网入口 备案号:川ICP备66666666号