假使我要插入10000笔资料,
maximun=100
public partial class TestFm :Form
{
TESTEntities context = new TESTEntities();
public TestFm()
{
InitializeComponent();
}
private void btnOK_Click(object sender, EventArgs e)
{
this.btnOK.Enabled = false;
this.btnCancel.Enabled = true;
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i <= 10000; i++)
{
System.Threading.Thread.Sleep(100);
context.test.AddObject(new test
{
ID = i.ToString(),
NAME = i.ToString()
});
backgroundWorker1.ReportProgress(i);
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
lblStatus.Text = "Processing......" + progressBar1.Value.ToString() + "%";
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
MessageBox.Show(e.Error.Message);
}
else if (e.Cancelled)
{
lblStatus.Text = "取消";
}
else
{
lblStatus.Text = e.Result.ToString();
context.SaveChanges();
}
btnOK.Enabled = true;
btnCancel.Enabled = false;
}
private void btnCancel_Click(object sender, EventArgs e)
{
backgroundWorker1.CancelAsync();
btnCancel.Enabled = false;
}
}
------解决思路----------------------
每100个资料 progressBar1.Value += 1