您的位置:首页 > 其它

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) {

}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: