首页 > 代码库 > C#异步线程调用之ThreadPool.QueueUserWorkItem()
C#异步线程调用之ThreadPool.QueueUserWorkItem()
项目中有大文件传输需求,用户在网页端填好某个IP下的共享目录,服务端通过所填路径检测共享目录下的文件以供用户选择待传输的文件,
用户勾选相应文件后点击提交,服务端遂开始执行文件传输。所有的逻辑过程都在同一后台代码中,传文件的代码和其他业务代码都在同一线程中,
因而在文件过大时用户所在页面要等待很久很久,极大地影响用户体验,所以后来将传文件的过程放在新的线程中,以便提高页面响应效率。
将文件传输过程放在新线程中使用的是ThreadPool.QueueUserWorkItem()方法,调用方式是:
protected void Page_Load(object sender, EventArgs e) { List<string> fileCollection = new List<string>(); fileCollection.Add("\\\\127.0.0.1\\folder\\file1.txt"); fileCollection.Add("\\\\127.0.0.2\\folder\\file2.txt"); fileCollection.Add("\\\\127.0.0.3\\folder\\file3.txt"); string destFolder = "\\\\127.1.1.1\\destFolder"; ThreadPool.QueueUserWorkItem(state => TransmiteFile(fileCollection, destFolder)); } public void TransmiteFile(List<string> fileCollection ,string destFolder) { //...some logic }
下面来认识一下ThreadPool,先看下引用地址:线程池之ThreadPool类与辅助线程 - <第二篇>
C#异步线程调用之ThreadPool.QueueUserWorkItem()
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。