110,536
社区成员
发帖
与我相关
我的任务
分享
private delegate void UpLoad(List<string> files);
private delegate void CompleteSingleFile();
CompleteSingleFile CompleteSingle = null;
private void Form1_Load(object sender, EventArgs e)
{
List<string> files = new List<string>();
for (int i = 1; i <= 10; i++)
files.Add(i.ToString());
this.progressBar1.Maximum = files.Count;
this.progressBar1.Value = 0;
CompleteSingle = new CompleteSingleFile(this.CompleteSingleFileMethod);
(new UpLoad(UpLoadMethod)).BeginInvoke(files, new AsyncCallback(CompleteUpLoad) , this);
}
private void UpLoadMethod(List<string> files)
{
foreach (var file in files)
{
// 此处上传
Thread.Sleep(1000);
if (CompleteSingle != null)
CompleteSingle();
}
}
private void CompleteSingleFileMethod()
{
if (this.progressBar1.Value < this.progressBar1.Maximum)
{
this.Invoke(new Action(delegate
{
this.progressBar1.Value++;
}));
}
}
private void CompleteUpLoad(IAsyncResult result)
{
this.progressBar1.Value = this.progressBar1.Maximum;
MessageBox.Show("上传完毕");
}