winform上传,backgroundWorker,显示进度条问题

wtnu200 2012-06-07 12:08:00
winform上传文件,对端用webservice接受。

webservice代码

[WebMethod]
public bool AcceptFile(Byte[] file,Guid authority)
{
string path = "D:/连锁版服务端/UpLoadFile/" + DateTime.Now.ToString("yyyyMMddhhmmsssff") + ".rar";
FileStream fStream = new FileStream(path, FileMode.Create, FileAccess.Write);
fStream.Write(file, 0, file.Length);
fStream.Close();
return true;
}

winform的代码

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
FileStream fStream;
fStream = new FileStream(textBox1.Text.Trim(), FileMode.Open, FileAccess.Read);
Byte[] b = new Byte[fStream.Length];
fStream.Read(b, 0, b.Length);
UploadService.Service1SoapClient ss = new UploadService.Service1SoapClient();
ss.AcceptFile(b, Guid.Empty);
fStream.Flush();
fStream.Close();
}

private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
MessageBox.Show("上传完成!","提示");
}

现在的问题是,我要怎么显示上传的进度到progressBar1
请大大们指教。
...全文
287 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuandonghuia 2012-06-07
  • 打赏
  • 举报
回复
你这个显示不了进度条
,因为本身你的上传就是一次完成的,你没有分出来有几步
aspireyjy 2012-06-07
  • 打赏
  • 举报
回复
事件设置的问题
熙风 2012-06-07
  • 打赏
  • 举报
回复
取上传的大小和本地文件大小的百分比来显示进度
bdmh 2012-06-07
  • 打赏
  • 举报
回复
你这个显示不了,因为你并没有将进度提交给 ProgressChanged事件,你应该在那个耗时的操作中通过调用ReportProgress传递进度,而你现在只是调用一个接口,这个接口不会实时返回给你进度的

参考http://blog.csdn.net/zhongjiekangping/article/details/4563357
wtnu200 2012-06-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你这个显示不了进度条
,因为本身你的上传就是一次完成的,你没有分出来有几步
[/Quote]
嗯,我在网上查了下,好像有一个分段上传的,不过还没有例子代码。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧