c#,winform webservice传输量大的二进制数据怎样显示进度条!
webservice的方法写好了,调用也正常,但因为二进制数据比较大,需要等待较长时间,所以想做一个进度条的效果,这个该怎样弄呢?给点思路啊,如果有给代码就更好啦...
webservice的方法写好了,调用也正常,但因为二进制数据比较大,需要等待较长时间,所以想做一个进度条的效果,这个该怎样弄呢?给点思路啊,如果有给代码就更好啦
展开
3个回答
展开全部
用Progress控件;
public void DoSth(int max, int current)
{
decimal res = (Convert.ToDecimal(current) / Convert.ToDecimal(max)) * 100;
res = Decimal.Floor(res);
this.label1.Text = current.ToString() + "/" + max.ToString();
this.prgbar.Value = Convert.ToInt32(res);
Application.DoEvents();
}
声明相应委托,public delegate void DoSthEventHandler(int max, int current);
定义好事件,public event DoSthEventHandler OnDoSth;
OnDoSth += new DoSthEventHandler(frmGressbar.DoSth);
然后在数据传输的方法中触发事件。
if (OnDoSth != null)
{
OnDoSth(this.neuSpread1_Sheet1.RowCount, i+1);
}
public void DoSth(int max, int current)
{
decimal res = (Convert.ToDecimal(current) / Convert.ToDecimal(max)) * 100;
res = Decimal.Floor(res);
this.label1.Text = current.ToString() + "/" + max.ToString();
this.prgbar.Value = Convert.ToInt32(res);
Application.DoEvents();
}
声明相应委托,public delegate void DoSthEventHandler(int max, int current);
定义好事件,public event DoSthEventHandler OnDoSth;
OnDoSth += new DoSthEventHandler(frmGressbar.DoSth);
然后在数据传输的方法中触发事件。
if (OnDoSth != null)
{
OnDoSth(this.neuSpread1_Sheet1.RowCount, i+1);
}
追问
你这个对于循环处理数据集可以,但用webservice下载一个文件,我怎么能知道当前下载了多少字节?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询