• 大小: 574KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-25
  • 语言: C#
  • 标签: Task  多线程  

资源简介

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个文件信息

评论

共有 条评论