资源简介
C#多线程并行管理,通过Task实现,可对单个任务进行暂停,继续以及停止等操作,每个任务均有单独的进度条显示
同时执行的任务个数可以自行设置

代码片段和文件信息
using GLDataMergeTools.Control;
using ITaskHelper;
using System;
using System.Windows.Forms;
using TaskManager;
using TaskModels;
///
/// 多任务操作Demo
/// 可暂停、停止
/// Denny
/// 2018-06-25
/// QQ:263709213
///
namespace GLDataMergeTools
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender EventArgs e)
{
InitializeListView();
}
private void InitializeListView()
{
this.nListView1.Columns.Add(“序号“ 60 HorizontalAlignment.Left); //一步添加
this.nListView1.Columns.Add(“名称“ 200 HorizontalAlignment.Left); //一步添加
this.nListView1.Columns.Add(“状态“ 100 HorizontalAlignment.Center); //一步添加
this.nListView1.Columns.Add(“进度“ 160 HorizontalAlignment.Left); //一步添加
this.nListView1.Columns.Add(“描述“ 280 HorizontalAlignment.Left); //一步添加
this.nListView1.Columns.Add(new NListView.ColumnSortHeader(“时间“ 140 HorizontalAlignment.Right)); //一步添加
this.nListView1.ProgressColumnIndex = 3;
}
int Index = 0;
private void button1_Click(object sender EventArgs e)
{
ListViewItem lvi = new ListViewItem();
lvi.Text = Convert.ToString(++Index);
lvi.SubItems.Add($“任务{Index}“);
lvi.SubItems.Add(“未配置参数“);
lvi.SubItems.Add(Convert.ToString(0));
lvi.SubItems.Add(““);
lvi.SubItems.Add(DateTime.Now.ToString(“g“));
this.nListView1.Items.Add(lvi);
}
TaskManage taskManage;
private void button2_Click(object sender EventArgs e)
{
taskManage = new TaskManage(5);
foreach (ListViewItem lvi in this.nListView1.Items)
{
TaskProperty taskProperty = new TaskProperty();
taskProperty.ID = int.Parse(lvi.SubItems[0].Text);
ITask t = new Task_DataMergeV2.DataMerge();
Action action = new Action(() =>
{
// ITask t = new Task_DataMergeV2.DataMerge();
t.SetParm(taskProperty);
t.AppendProIndexEventArgs += T_AppendProIndexEventArgs;
t.Start();
});
taskProperty.Itask = t;
taskProperty.GetAction = action;
taskManage.AppendTask(taskProperty);
}
taskManage.Start();
}
private void T_AppendProIndexEventArgs(int id int index int total)
{
setProgress(id index total);
}
public void setProgress(int index int i int total)
{
float progress = i * 100.0f / total;
this.Invoke((MethodInvoker)(() =>
{
foreach (Li
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 96768 2018-06-25 09:23 GLDataMergeTools\.vs\GLDataMergeTools\v15\.suo
文件 1245184 2018-06-25 09:22 GLDataMergeTools\.vs\GLDataMergeTools\v15\sqlite3\storage.ide
文件 161 2018-06-21 09:26 GLDataMergeTools\GLDataMergeTools\app.config
文件 67344 2018-06-21 09:32 GLDataMergeTools\GLDataMergeTools\bin\Debug\Config\Skin\bg\bg01.jpg
文件 31556 2018-06-21 09:32 GLDataMergeTools\GLDataMergeTools\bin\Debug\Config\Skin\bg\bg02.jpg
文件 29550 2018-06-21 09:32 GLDataMergeTools\GLDataMergeTools\bin\Debug\Config\Skin\bg\bg03.jpg
文件 25148 2018-06-21 09:32 GLDataMergeTools\GLDataMergeTools\bin\Debug\Config\Skin\bg\bg04.jpg
文件 24182 2018-06-21 09:32 GLDataMergeTools\GLDataMergeTools\bin\Debug\Config\Skin\bg\bg05.jpg
文件 17769 2018-06-21 09:32 GLDataMergeTools\GLDataMergeTools\bin\Debug\Config\Skin\bg\bg06.jpg
文件 77 2018-06-21 09:32 GLDataMergeTools\GLDataMergeTools\bin\Debug\Config\Skin\BlueSea.config
文件 77 2018-06-21 09:32 GLDataMergeTools\GLDataMergeTools\bin\Debug\Config\Skin\KissOfAngel.config
文件 77 2018-06-21 09:32 GLDataMergeTools\GLDataMergeTools\bin\Debug\Config\Skin\NoFlower.config
文件 77 2018-06-21 09:32 GLDataMergeTools\GLDataMergeTools\bin\Debug\Config\Skin\SunsetRed.config
文件 181 2018-06-21 09:32 GLDataMergeTools\GLDataMergeTools\bin\Debug\Config\Skin.config
文件 35 2018-06-21 09:33 GLDataMergeTools\GLDataMergeTools\bin\Debug\Config\Skin.ini
文件 22528 2018-06-25 09:18 GLDataMergeTools\GLDataMergeTools\bin\Debug\GLDataMergeTools.exe
文件 161 2018-06-21 09:26 GLDataMergeTools\GLDataMergeTools\bin\Debug\GLDataMergeTools.exe.config
文件 44544 2018-06-25 09:18 GLDataMergeTools\GLDataMergeTools\bin\Debug\GLDataMergeTools.pdb
文件 4608 2018-06-21 16:14 GLDataMergeTools\GLDataMergeTools\bin\Debug\ITaskHelper.dll
文件 7680 2018-06-21 16:14 GLDataMergeTools\GLDataMergeTools\bin\Debug\ITaskHelper.pdb
文件 7680 2018-06-25 09:18 GLDataMergeTools\GLDataMergeTools\bin\Debug\TaskManager.dll
文件 19968 2018-06-25 09:18 GLDataMergeTools\GLDataMergeTools\bin\Debug\TaskManager.pdb
文件 6144 2018-06-25 09:18 GLDataMergeTools\GLDataMergeTools\bin\Debug\TaskModels.dll
文件 15872 2018-06-25 09:18 GLDataMergeTools\GLDataMergeTools\bin\Debug\TaskModels.pdb
文件 5632 2018-06-25 09:18 GLDataMergeTools\GLDataMergeTools\bin\Debug\Task_DataMergeV2.dll
文件 13824 2018-06-25 09:18 GLDataMergeTools\GLDataMergeTools\bin\Debug\Task_DataMergeV2.pdb
文件 15595 2018-06-21 10:32 GLDataMergeTools\GLDataMergeTools\Controls\NListView.cs
文件 1237 2018-06-21 10:32 GLDataMergeTools\GLDataMergeTools\Controls\NListView.designer.cs
文件 5817 2018-06-21 10:31 GLDataMergeTools\GLDataMergeTools\Controls\NListView.resx
文件 5230 2018-06-25 09:22 GLDataMergeTools\GLDataMergeTools\GLDataMergeTools.csproj
............此处省略134个文件信息
- 上一篇:ovalshape c# 指示灯控件
- 下一篇:C#银行管理系统源代码
相关资源
- 异步TASK Async和await使用
- WPF Task 多任务
- C#多线程以及Socket通讯
- 大文件复制(多线程)
- Task使用
- c# 多线程传图片
- C# 多线程任务池
- 最新9个C# .NET Winform的多线程进度条源
- c# 多线程蜘蛛爬虫
- C# MitiThread.zip C# 多线程
- 《C#并发编程经典》高清带书签
- C# 实现的一个完整的Windows任务管理器
- C# - 大漠多线程控制台
- C# 小闹钟多线程案例
- C#.NET多线程6个(包括多线程基本使用
- C#多线程Demo
- C# vs2012编写多线程网络爬虫(爬图)
- C#多线程编程实战 真正高清完整的中
- C#多线程编程实战_中文完整版带书签
- aspose包括Aspose.words、Aspose.Cells、Aspo
- C#多线程编程实战_中文完整版
- C# ftp多线程断点上传
- C#窗体基于TCP的Socket多线程通信
- C# tcp 多线程聊天室
- 多线程采集网页C#源代码
- WPF下,高性能绘图,写WriteableBitmap,
- c#赛车游戏很实用
- c# 文件全盘搜索 多线程 vs2005 winform
- C# 不使用Task实现的多线程顺序执行
- C#(Csharp)多线程HTTP并发请求(Http
评论
共有 条评论