using System.ComponentModel;
文件开头
public partial class Form1 : Form
{
private BackgroundWorker worker = new BackgroundWorker();
public Form1()
{
InitializeComponent();
worker.WorkerReportsProgress = true;
worker.WorkerSupportsCancellation = true;
worker.DoWork += new DoWorkEventHandler(DoWork);
worker.ProgressChanged += new ProgressChangedEventHandler(ProgessChanged);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(CompleteWork);
}
public void DoWork(object sender, DoWorkEventArgs e)
{
e.Result = CreatDB(worker, e);//这个CreatDB就是在后台工作的进程.
}
public void ProgessChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
label1.Text = e.ProgressPercentage.ToString()+"%";
} //C#进度条实现实例
public void CompleteWork(object sender, RunWorkerCompletedEventArgs e)
{
label1.Text = "处理完毕!";
}
private int CreatDB(object sender, DoWorkEventArgs e))//这个CreatDB就是在后台工作的进程
{
WordDB[] objWDB = new WordDB[tempint];
for (int i = 0; i < tempint - 1; i++)
{
objWDB[i].ID = i + 1;
string[] tempstrs1 = tempstrs[i].Split('[');
objWDB[i].English = tempstrs1[0].Replace('(', '<').Replace(')', '>').Replace("'", "''");
string[] tempstrs2 = tempstrs[i].Split(']');
objWDB[i].Chinese = tempstrs2[1].Replace('(', '<').Replace(')', '>').Replace("'", "''");
}
if (File.Exists(FileName + ".accdb") == true)
{
File.Delete(FileName + ".accdb");
}
File.Copy("D://TEMP//TEMP.accdb", FileName + ".accdb");
for (int i = 0; i < tempint - 1; i++)
{
string tempstr = "INSERT INTO Words VALUES ('" + objWDB[i].ID + "','" + objWDB[i].English + "','" + objWDB[i].Chinese + "','1') ";
UpdateWords(tempstr);
worker.ReportProgress((100*i)/(tempint-1)+1);//引发ProgessChanged事件 这个i返回给进度条的变量范围在(1-100)
}
MessageBox.Show("成功转换!");
return -1;
}
private void button3_Click(object sender, EventArgs e)
{
worker.RunWorkerAsync(); //开始执行后台操作
}