task多任务处理
2016-07-03 22:49
302 查看
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //数据 List<int> lt = new List<int>(); //线程完成标识 List<Task> lttask = new List<Task>(); //数据段 List<List<int>> ltitem = new List<List<int>>(); //数据段数 默认10 一个线程对应一段数据 int threadCount = 10; //初始化 public void Init() { //数据分段 InitSector(); //任务初始化 InitThread(); } //根据threadCount对数据进行分段并初始化线程完成标识 public void InitSector() { } public void InitThread() { for (int i = 0; i < threadCount; i++) { Task t = Task.Factory.StartNew(() => Export(GetSector(i))); lttask.Add(t); } //主线程会卡在这里等待所有线程完成之后 Task.WaitAll(lttask.ToArray()); //导出成功提示等等 } //获取分段数据 public List<int> GetSector(int i) { return null; } //导出的原方法 public void Export(List<int> lt) { } } }
相关文章推荐
- mac hbase程序启动警告:找不到hadoop native lib
- Makefile介绍
- 集成ffmpeg/x264:ERROR: libx264 not found的问题
- 离线安装Cloudera
- 网页弹出表格窗口
- 在iOS开发中,需要用到的多线程技术。
- FJ省队集训DAY1 T1
- POJ 3122 二分
- linux dmesg命令参数及用法详解(linux显示开机信息命令)
- ceph 部署后rbd块设备读写只有10M左右,慢的更龟速一样,怎样解决!,求各位博友指点……,感激不尽……
- 2016计蒜之道复赛 微信钱包付款
- POJ 3122 二分
- POJ 2350 Above Average
- Linux之:Ubuntu速学笔记(2)
- SignalR系列教程:在MVC5中使用SignalR
- RabbitMQ的安装,配置,监控
- 关注用户体验
- 欢迎使用CSDN-markdown编辑器
- ATS 的三种解决方法
- 初识servlet