【发布时间】:2017-03-01 19:47:49
【问题描述】:
我有一个程序,它的进度条在程序完成之前不会更新。我做了一些挖掘并发现我需要创建一个后台工作人员,以便它在我的 while 循环运行时更新。从显示的示例中,我只是没有得到我应该做的事情。有人可以向我解释一下如何设置它以及它在做什么吗?
int progressBar;
private void button3_Click(object sender, EventArgs e)
{
try
{
while (y < PriDID.Count)
{
cmd.CommandText = "SELECT COUNT(*) FROM Accounts WHERE ACCT='" + ACCT[y] + "'";
int count = Convert.ToInt32(cmd.ExecuteScalar());
if (count < 1)
{
progressBar = (y / SDM_ACCT.Count) * 100;
progressBar1.Value = progressBar;
progressBar1.Update();
Console.WriteLine(SDM_ACCT[y - 1]);
cmd.CommandText = @"INSERT INTO Accounts(SDM_ACCT,Description)
values(" + "'" + ACCT[y] + "'," + "'" + Comment[y] + ")";
cmd.ExecuteNonQuery();
y++;
recordCount++;
}
else
{
y++;
}
MessageBox.Show(recordCount + " unique records successfully loaded to the Database.");
}
}
catch (Exception ex)
{
MessageBox.Show("Exception: " + ex.Message + " Please make sure you have selected a valid path for your CSV and database.");
}
}
【问题讨论】:
-
您找到了哪些关于如何编写后台工作者的信息,以及您在实现它时遇到了哪些具体问题?
-
我找到了这个,但我只是不明白如何使它适应我所拥有的。 stackoverflow.com/questions/6481304/…
-
在适应您的情况时,您遇到了哪些具体问题?什么不适合你?
-
只是推一个线程,或者做一些研究,无论哪个。
-
我不明白应该把
void worker_DoWork(object sender, DoWorkEventArgs e)放在哪里才能让它正常工作。
标签: c# progress-bar backgroundworker