使用backgroundwork实现异步显示加载数据的信息。
2009-07-08 21:00 Jeffery Tao 阅读(377) 评论(0) 收藏 举报 public partial class Form1 : Form
{
private string fileName = string.Empty;
public Form1()
{
InitializeComponent();
}
private void GetResult()
{
int i=0;
if(this.textBox1.Text.Trim()=="")
return;
this.listBox1.Items.Clear();
string[] MyFolders = System.IO.Directory.GetFileSystemEntries(this.textBox1.Text);
for (i = 0; i < MyFolders.Length; i++)
{
Thread.Sleep(10);
fileName = MyFolders[i];
this.listBox1.Items.Add(MyFolders[i]);
backgroundWorker1.ReportProgress(i);
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
GetResult();
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
Tb_Progress.Text = "正在加载第" + e.ProgressPercentage.ToString() + "条数据。" + fileName;
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void button2_Click(object sender, EventArgs e)
{
if (this.folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
this.textBox1.Text = this.folderBrowserDialog1.SelectedPath;
}
}
}
上面写完后,还要设置一下backgroundwork的属性:
WorkerReportsProgress:true
浙公网安备 33010602011771号