资源简介
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#银行管理系统源代码
相关资源
- C#多线程大文件
- C#蜘蛛爬虫源代码多线程
- winform程序仿迅雷
- Loading 动画+数据异步调用多线程
- C#多线程计算pi
- C#多线程进度条
- c#定时器+多线程
- c#编写串口通讯代码 多线程实现
- C#多线程编程 线程与窗体交互源码
- C# TCP网络通信小助手
- c#IPCO多线程并发业务处理
- C#基于TCP的Socket多线程通信包含服务端
- C#Socket多线程聊天室
- winform多线程
- C#多线程编程实战Code源代码
- 哲学家进餐问题C# 解决程序
- Asp.net多线程
- asp.net多线程日志记录源码
- C#调用PComm.dll
- C#多任务多线程组件V1.1[源代码]
- C# 大漠多线程带网络验证
- c#编写串口通讯代码 多线程实现.rar
- Aspose.Tasks
- c# UDP协议传送文件支持断点续传异步
- c#多线程断点续传
- 模拟器命令C#封装
- ModbusMonitor VS2010 winform Csharp 开发的一
- TCPFILE C#TCP多线程异步传输 C#开发的服
- cSharpUART c#编写串口通讯代码 多线程实
- Visual C#中的多线程编程
评论
共有 条评论