没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
16页
C#线程池和文件下载服务器 如果设计一个服务器程序,每当处理用户请求时,都开始一个线程,将会在一定程序上消耗服务器的资源。为此,一个最好的解决方法就是在服务器启动之前,事先创建一些线程对象,然后,当处理客户端请求时,就从这些建好的线程中获得线程对象,并处理请求。保存这些线程对象的结构就叫做线程池。 在C#中可以通过System.Threading.ThreadPool类来实现,在默认情况下,ThreadPool最大可建立500个工作线程和1000个I/O线程(根据机器CPU个数和.net framework版本的不同,这些数据可能会有变化)。
资源推荐
资源详情
资源评论
上一篇:C#线程系列讲座(2):Thread 类的应用
如果设计一个服务器程序,每当处理用户请求时,都开始一个线程,将会在一定程序上消耗
服务器的资源。为此,一个最好的解决方法就是在服务器启动之前,事先创建一些线程对象,
然后,当处理客户端请求时,就从这些建好的线程中获得线程对象,并处理请求。保存这些线
程对象的结构就叫做线程池。
在 中可以通过 类来实现,在默认情况下,
最大可建立 个工作线程和 个 线程(根据机器 个数和
版本的不同,这些数据可能会有变化)。下面是一个用 从线程池获得线程的例
子:
!"#"$#%&'(#)
*
+,&)-
.
#"/&01)
*
-
#!-
2/$&% 3%#!)-
+,& )-
+,&#!)-
4%%+ &$#%35线程 5)-从线程池中得到一个线程,
并运行 $#%
4%%+ &$#%35线程 65)-
4%%+ &$#%35线程 75)-
8,&)-
.
下图为上面代码的运行结果。
要注意的是,使用 获得的线程都是后台线程。
下面的程序是我设计的一个下载文件服务器的例子。这个例子从 获得线程,并
处理相应的客户端请求。
%-
%#2#-
%,9-
%$-
%-
%:# -
%-
!#/
*
#;"
*
!"-
!"-
!"" &'(#)
*
#!#<#!-
*
#8#"%<6-
<#2&)-
8<8&)-
<8,&)-
01<!&==)-
!<018!#&==3=>>=)-
?<@!-
&;A$&?))如果下载文件存在,开始下载这个文件
*
;?<;&?3;/!3;
B##83
;8)-
'01'%C<'0DE61-每次下载 DF
#%<-
!G<5G6F>>5@
5H!I!!##H>>5@
5HJ!I#-?<5@
?%'&?,$&5>>5)@)@5>>>>5-
'01<BA#B2K&!G)-
+&33,)-
&&#%<?8&'%C33'%C%&)))L)
*
+&'%C33#%)-
.
+,&?@5下载完成5)-
.
文件不存在,输出提示信息
*
!<5G6F>>H!I$
!-#<%HD>>>> 文件不存在5-
'01'%C<BA#;D2K&!)-
+&'%C33'%C,)-
.
.
##&A$#!)
*
+,&/)-
.
?
*
&#M<%)
剩余15页未读,继续阅读
资源评论
- Yuwencong2018-10-16用处不是很大
- Spring9742012-07-30正在学习这方面的知识,很有帮助,谢谢
- ron周2014-06-12理解比较深刻,值得研究
fmjob
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功