C# C DevExpress-进度条在工作时立即填充

C# C DevExpress-进度条在工作时立即填充,c#,devexpress,C#,Devexpress,正如标题所说。第一次使用这个控件,所以我不确定发生了什么 我的超负荷 bw = new BackgroundWorker(); bw.DoWork += new DoWorkEventHandler(bw_DoWork); bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted); bw.ProgressChanged += new ProgressChangedEventHandler

正如标题所说。第一次使用这个控件,所以我不确定发生了什么

我的超负荷

bw = new BackgroundWorker();

bw.DoWork += new DoWorkEventHandler(bw_DoWork);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
bw.WorkerReportsProgress = true;
在我的按钮点击事件中

// Set props for progress bar
progressBarControl1.EditValue = 1;
progressBarControl1.Properties.Minimum = 0;
// cboTables names is a checkedListBox
progressBarControl1.Properties.Maximum = cboTableNames.CheckedItems.Count;
progressBarControl1.Properties.Step = 1;

// Start BW worker
bw.RunWorkerAsync();
嫁妆

protected void bw_DoWork(object sender, DoWorkEventArgs e)
{
   int counter = 0;
    if (cboTableNames.CheckedItems.Count != 0)
        {
            // Get selected items
            foreach (string item in cboTableNames.CheckedItems)
            {
                // Pass off for archiving
                _myIO.Archive(item, _sqlConn, bw); // I pass bw 
            }
        }
        else
        {
           // Catch if the user tries to submit without table name selection(s)
            MessageBox.Show("You must select a table name to archive.");
        }
    }
现在的目标是在我循环检查每个已检查的项目时不填充进度条。但在我的IO文件中,我将项目提交到数据库。目标是反映插入的每个SQL事务的进度

// Encapsulated within a loop that is iterating through records and inserting values 
//into the DB. #magic

// For progressbar
pgCounter++;
bw.ReportProgress(pgCounter);
现在奇怪的是,bw.RunWorkerAsync将我重定向到DoWork函数。发生的那一刻,我的进度条填满了100%。我错过了什么


另外,除了通常定义BackgroundWorker的地方,我还没有看到太多人从其他类调用.ReportProgress。任何关于正确使用方法的提示也将不胜感激。干杯。

这不是最好的选择,但我通常只使用thread.sleep和add半秒,通常进程太快,进度条无法以我们想要的方式直观地工作,但我重复这不是最好的操作方法。@edrodriguez-上的一个变体?:-嘿,谢谢你的意见。尝试按您的建议添加thread.sleep,但无效。