• backgroundWorker1


    为了确保 backgroundWorker1_ProgressChanged事件能起作用 设置 WorkerReportsProgress = True;

    为了确保能取消操作 设置 WorkerSupportsCancellation = True  这样代码 backgroundWorker1.CancelAsync(); 就不会出错


    clipboard

    clipboard



    using System;
    using System.ComponentModel;
    using System.Threading;
    using System.Windows.Forms;
    
    namespace WindowsFormsAppBackGroundWorker {
        public partial class Form1 : Form {
            public Form1() {
                InitializeComponent();
            }
    
            private void button1_Click(object sender,EventArgs e) {
                //start
                if (!backgroundWorker1.IsBusy)
                    backgroundWorker1.RunWorkerAsync(textBox1.Text);

                   //此处的Object数值 存放在 DoWorkEventArgs的Argument里面
                    //可在 backgroundWorker1_DoWork事件的  e.Argument获取

            }
    
    
            private void button2_Click(object sender,EventArgs e) {
                //stop
                //backgroundWorker1.WorkerSupportsCancellation = true;
                if (backgroundWorker1.IsBusy)
                    backgroundWorker1.CancelAsync();
            }
    
    
            private void backgroundWorker1_DoWork(object sender,DoWorkEventArgs e) {
    
                int length = int.Parse(textBox1.Text);
                progressBar1.Maximum = length;
    
                backgroundWorker1.ReportProgress(1,"Begin...");
    
                for (int i = 0; i < length; i++) {
                    if (!backgroundWorker1.CancellationPending) {
                        backgroundWorker1.ReportProgress(i,i);
                        Thread.Sleep(10);
                    }
                }
    
                backgroundWorker1.ReportProgress(100,"Complete!");
            }
    
            private void backgroundWorker1_ProgressChanged(object sender,ProgressChangedEventArgs e) {
                 progressBar1.Value = unchecked(e.ProgressPercentage);
                 label1.Text = e.UserState.ToString();
            }
    
            private void backgroundWorker1_RunWorkerCompleted(object sender,RunWorkerCompletedEventArgs e) {
                //Text = "RunWorkerCompleted";
            }
         }
    }
    
  • 相关阅读:
    vim替换
    vim 常用快捷键 二
    vim撤销
    让你提升命令行效率的 Bash 快捷键
    快速正确的安装 Ruby, Rails 运行环境
    STL的常用算法
    Ubuntu下Postfix邮件服务器安装及基本的设置
    vim 参考手册
    指针 多维数组 数组指针 指针数组
    数学小抄
  • 原文地址:https://www.cnblogs.com/xe2011/p/13194684.html
Copyright © 2020-2023  润新知