C# 如何在Backgroundworker中使用方法
我已经做了一个方法,我想把它放在Backgroundworker上,里面有一个progressbar。这是我第一次在后台工作 这是我的密码:C# 如何在Backgroundworker中使用方法,c#,progress-bar,backgroundworker,C#,Progress Bar,Backgroundworker,我已经做了一个方法,我想把它放在Backgroundworker上,里面有一个progressbar。这是我第一次在后台工作 这是我的密码: public void WorkLoad() { string conStr, sheetName; conStr = string.Empty; //Get the name of the First Sheet. using (OleDbConnection kuneks
public void WorkLoad()
{
string conStr, sheetName;
conStr = string.Empty;
//Get the name of the First Sheet.
using (OleDbConnection kuneksyon = new OleDbConnection(Excel07ConString))
{
using (OleDbCommand utos = new OleDbCommand())
{
using (OleDbDataAdapter oda = new OleDbDataAdapter())
{
utos.Connection = kuneksyon;
kuneksyon.Open();
DataTable dtExcelSchema = kuneksyon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
sheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
kuneksyon.Close();
DataTable dt = new DataTable();
utos.Connection = kuneksyon;
utos.CommandText = "SELECT [Engineer],[SITEID],[SITE NAME],[2G TX Status],[3G TX Status],[WO Status-LTE] From [" + sheetName + "]";
kuneksyon.Open();
oda.SelectCommand = utos;
oda.Fill(dt);
kuneksyon.Close();
//Populate DataGridView.
ForIssuanceView.DataSource = dt;
ForIssuanceView.Columns.Add(" ", " ");
}
}
}
}
假设您的后台工作人员是类成员:
private BackgroundWorker bw;
当您要使用它时,您可以创建并初始化它:
bw = new BackgroundWorker();
bw.WorkerReportsProgress = true;
bw.ProgressChanged += ProgressChanged;
bw.DoWork += DoWork;
然后你开始:
bw.RunWorkerAsync();
您应该提供一种进行实际工作的方法:
private static void DoWork(object sender, DoWorkEventArgs e)
{
// do your actual work and report percentage whenever you find appropriate
for (var p = 0; p < 100; p++)
{
bw.ReportProgress(p);
}
}
我们不是在为你写代码。你有更具体的问题吗?到目前为止你做了什么研究?我做了一些研究,先生,但我不知道如何使用后台工作。工作、进度变更和运行变更。我想有人给我解释一下。我会将其应用于我的代码。可能重复:
private static void ProgressChanged(object sender, ProgressChangedEventArgs e)
{
// inform the UI that the percentage has been changed
}