ThreadPool线程池的主要方法:

1. public static Boolean QueueUserWorkItem(WaitCallback wc, Object state);

WaitCallback回调函数:通过将一些回调函数放入线程池中让其形成队列,然后线程池会自动创建或者复用线程去执行处理这些回调函数。State: 这个参数也是非常重要的,当执行带有参数的回调函数时,该参数会将引用传入,回调方法中,供其使用。

eg:用于文件处理://删除ftp目录文件

DataTable dt = new ArchivesHelper().GetFileListByArchivesId(ID); //ftp文件
foreach (DataRow dr in dt.Rows)
{
StateInfo sta = new StateInfo();
sta.FtpPath = dr["filePath"].ToString();
sta.FtpThumbnailPath = dr["Thumbnail"].ToString();
//hreadProc方法加入线程池中执行,sta对象传入回调函数,供ThreadProc方法使用
ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc), sta);
}
/// <summary>
/// 创建一个委托来引用在辅助线程中执行的代码(接受一个对象参数并且没有返回值)
/// </summary>
/// <param name="stateInfo"></param>
private void ThreadProc(Object stateInfo)
{
var sta = stateInfo as StateInfo;
FtpHelper.DeleteFile(sta.FtpPath); //删除ftp文件
FtpHelper.DeleteFile(sta.FtpThumbnailPath);//删除ftp缩略图
}

最新文章

  1. ABP(现代ASP.NET样板开发框架)系列之14、ABP领域层——领域事件(Domain events)
  2. Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》
  3. 如何寻找&ldquo;真爱&rdquo;型合伙人
  4. Git for Windows v2.11.0 Release Notes
  5. LinkedList子类与Queue接口
  6. Learning to Rank 之 listwise ranking
  7. python 字符串编码
  8. Android核心组件 Service
  9. Xcode6 运行程序后,右侧Debug区域的Memory显示空白解决方法
  10. HTML5图片预览
  11. iOS 开发 UI 搭建心得(一)—— 驾驭 StoryBoard
  12. 用C++写一个简单的订阅者
  13. pip&amp;easy_install使用
  14. 【iOS】OC-时间转化的时区问题
  15. io文本加密
  16. Node笔记一
  17. CPDA-战略管理
  18. 使用Consul 实现 MagicOnion(GRpc) 服务注册和发现
  19. 快速失败/报错机制 - fail-fast
  20. SSL及其加密通信过程

热门文章

  1. 第9章 DOM对象,控制HTML元素
  2. [转载]Linux驱动-SPI驱动 之二:SPI通用接口层
  3. L2-014. 列车调度(set的使用,最长递增子序列)
  4. 批量删除osd的shell脚本
  5. webapi中使用token验证(JWT验证)
  6. python (面向对象相关的三个模块)
  7. vb和dos批处理创建或生成快捷方式
  8. C++深度解析教程学习笔记(2)C++中的引用
  9. findall 、 search的使用
  10. 4-4 zk特性 – 理解watcher机制