using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Threading;
using System.Reflection;namespace 循环显示
{
    public partial class Form1 : Form
    {
        //private static int MaxRecords = 100;        public Form1()
        {
            InitializeComponent();
        }        private void Form1_Load(object sender, EventArgs e)
        {        }        private void GetResult()
        {
            for (int i = 0; i < 10000; i++)
            {
               
                backgroundWorker1.ReportProgress(i);
            }
        }         
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {            GetResult();    
        }        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            this.label1.Text = e.ProgressPercentage.ToString();
            //this.listBox1.Items.Add(e.ProgressPercentage.ToString());
        }        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            try
            {
                
                this.button1.Enabled = true;
                this.button2.Enabled = false;
            }
            catch (TargetInvocationException ex)
            {
                MessageBox.Show(ex.InnerException.GetType().ToString());
            }
        }        private void button1_Click(object sender, EventArgs e)
        {
            
            //this.listBox1.Items.Clear();
            this.backgroundWorker1.RunWorkerAsync();
            this.button1.Enabled = false;
            this.button2.Enabled = true;
        }        private void button2_Click(object sender, EventArgs e)
        {
            this.backgroundWorker1.CancelAsync();
        }
    }
}
不知道哪里错了 我这个代码 没有报错 但是就是没有执行结果

解决方案 »

  1.   


    private void GetResult()
            {
                for (int i = 0; i < 10000; i++)
                {
                   
                    backgroundWorker1.ReportProgress(i+1);
                }
            } 
      

  2.   


     private void button1_Click(object sender, EventArgs e)
    {
                
         //this.listBox1.Items.Clear();
          this.backgroundWorker1.RunWorkerAsync();//你开始执行操作时没值的?
          this.button1.Enabled = false;
          this.button2.Enabled = true;
    }
      

  3.   

    backgroundWorker1.WorkerReportsProgress = true;
    backgroundWorker1.RunWorkerAsync();
      

  4.   

    this.backgroundWorker1.WorkerReportsProgress = true;
                this.backgroundWorker1.WorkerSupportsCancellation = true;
      

  5.   

    this.backgroundWorker1.WorkerReportsProgress = true;
                this.backgroundWorker1.WorkerSupportsCancellation = true;
      

  6.   

    有反映
     private void GetResult()
            {
                for (int i = 0; i < 10000; i++)
                {                backgroundWorker1.ReportProgress(i);
                    System.Threading.Thread.Sleep(1);//这样就能看到,如果不加就只能看到1和最后的9999,我这里运行是这样的
                }
            } 
      

  7.   

    恩,运行速度太快了啦,7楼的可以, System.Threading.Thread.Sleep(1000);//一秒改变一次
      

  8.   

    this.backgroundWorker1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker1_DoWork);
                this.backgroundWorker1.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker1_RunWorkerCompleted);
                this.backgroundWorker1.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.backgroundWorker1_ProgressChanged);
                // 
    找到原因了 事件没有绑定 哈哈