• 大小: 0.05M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2024-04-23
  • 语言: C#
  • 标签: 多线程  线程  

资源简介


资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace MultiThreading
{
    /// 
    /// 此实例:为SDP软件快速开发平台中使用到的真实方法
    /// 

    public partial class Form1 : Form
    {
        /// 
        /// 私有:线程同步信号
        /// 

        private ManualResetEvent cmdWaiter;

        /// 
        /// 委托更新进度条
        /// 

        private delegate void updateBar();

        /// 
        /// 结束提示委托
        /// 

        private delegate void showEnd();

        /// 
        /// 任务队列
        /// 注意:此任务队列 需要用户自动来定义 
        /// 实例中采用 string 来处理
        /// 

        private List taskList = new List();

        /// 
        /// 构造函数
        /// 

        public Form1()
        {
            InitializeComponent();
        }

        /// 
        /// 页面初始化加载
        /// 

        /// 
        /// 
        private void Form1_Load(object sender EventArgs e)
        {

            // 阻塞当前线程
            cmdWaiter = new ManualResetEvent(false);

            // 启动线程池
            ThreadPool.QueueUserWorkItem(new WaitCallback(this.On_ThreadEvent));

        }

        /// 
        /// 线程处理事务
        /// 

        /// 
        private void On_ThreadEvent(object obj)
        {
            while (true)
            {
                try
                {
                    // 阻塞当前线程,等待解除指令
                    this.cmdWaiter.WaitOne();

                    // 执行我们需要处理的事务
                    for (int k = 0; k < taskList.Count; k++)
                    {
                        Run_MyBusiness(taskList[k]);

                        // 休息指定的毫秒
                        Thread.Sleep(50);
                    }


                    // 清除队列数据
                    this.taskList.Clear();

                    this.On_EndLog();
                    this.cmdWaiter.Reset();
                }
                catch (Exception e)
                {
                    string strError = e.Message.ToString();
                    this.taskList.Clear();
                    this.cmdWaiter.Reset();
                }
            }
        }

        /// 
        /// 执行我们自己的业务
        /// 

        /// 
        private void Run_MyBusiness(string str)
        {
            // 委托更新
            updateBar updateDelegate = new updateBar(On_Update);
            this.Invoke(updateDelegate);
        }

        /// 
        /// 开始按钮
        /// 

        /// 
        /// 
        private void btn_Start_Click(obj

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2909  2019-07-16 10:41  51Aspx源码必读.txt
     文件        4659  2019-07-11 11:59  Form1.Designer.cs
     文件        4387  2019-07-11 12:20  Form1.cs
     文件        5817  2019-07-11 11:59  Form1.resx
     文件        3435  2019-07-11 09:46  MultiThreading.csproj
     文件         869  2019-07-16 10:38  MultiThreading.sln
     文件         475  2019-07-11 09:45  Program.cs
     目录           0  2019-07-11 09:45  Properties\
     文件        1378  2019-07-11 09:45  Properties\AssemblyInfo.cs
     文件        2879  2019-07-11 09:45  Properties\Resources.Designer.cs
     文件        5612  2019-07-11 09:45  Properties\Resources.resx
     文件        1100  2019-07-11 09:45  Properties\Settings.Designer.cs
     文件         249  2019-07-11 09:45  Properties\Settings.settings
     目录           0  2019-07-11 09:45  bin\
     目录           0  2019-07-16 10:37  bin\Debug\
     文件       10752  2019-07-16 10:37  bin\Debug\MultiThreading.exe
     文件       24064  2019-07-16 10:37  bin\Debug\MultiThreading.pdb
     文件       11608  2019-07-16 10:40  bin\Debug\MultiThreading.vshost.exe
     文件         490  2018-04-12 07:35  bin\Debug\MultiThreading.vshost.exe.manifest
     文件        4945  2019-04-16 10:31  from - .gif
     目录           0  2019-07-11 09:45  obj\
     目录           0  2019-07-11 09:45  obj\x86\
     目录           0  2019-07-16 10:37  obj\x86\Debug\
     文件        5458  2019-07-16 10:37  obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
     文件         180  2019-07-11 12:21  obj\x86\Debug\MultiThreading.Form1.resources
     文件         180  2019-07-11 12:21  obj\x86\Debug\MultiThreading.Properties.Resources.resources
     文件        1796  2019-07-16 10:40  obj\x86\Debug\MultiThreading.csproj.FileListAbsolute.txt
     文件         975  2019-07-16 10:37  obj\x86\Debug\MultiThreading.csproj.GenerateResource.Cache
     文件       10752  2019-07-16 10:37  obj\x86\Debug\MultiThreading.exe
     文件       24064  2019-07-16 10:37  obj\x86\Debug\MultiThreading.pdb
     文件         704  2019-07-11 12:21  obj\x86\Debug\ResGen.read.1.tlog
............此处省略3个文件信息

评论

共有 条评论