c#,winform webservice传输量大的二进制数据怎样显示进度条!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#,winform webservice传输量大的二进制数据怎样显示进度条!相关的知识,希望对你有一定的参考价值。
webservice的方法写好了,调用也正常,但因为二进制数据比较大,需要等待较长时间,所以想做一个进度条的效果,这个该怎样弄呢?给点思路啊,如果有给代码就更好啦
用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);
追问
你这个对于循环处理数据集可以,但用webservice下载一个文件,我怎么能知道当前下载了多少字节?
参考技术A 先传长度,不可以吗 参考技术B 我也很想知道,楼主如果解决了,请分享下哦~~~追问没有解决,我最后决定不用进度条了
C# winform 如何引用webservices
“部署到外网IIS后,有一个访问的地址,可以浏览WebService的
在winform里面引用WebService,WebService地址最好采用动态的,这样项目部署会很容易,不需要修改程序,重新编译。”
上面是别人的原话,我想问一下,这个“采用动态”的,该如何实现?
如何设置配置文件,又如何读取呢?
添加web引用后,会生成一个app.config文件,但是生成解决方案后,并没有这个文件,是不是要把这个app.config手工移动到debug下面? 那这个app.config该如何读,我发现和网站的配置文件内容不一样啊
有一个文件 软件名.exe.config
这个也有URL,但是设置了没作用,这是做什么的?
[[[[[lanehlj]]]]] 如果web services 的地址换了呢?难道还的重新编辑程序?
------------------
beitar_163 如何读取app.config ? appconfig该如何写呢?
关于如何配置和读取webService,首先你需要建立一个webservice,然后在服务器上发布,你再用一个电脑作为域名服务器,你在客户端电脑上,调用指向域名的时候,他会自动列出已经发布可以的webService,然后你引用就可以了。大概的格式就是 域名+组件封装名+组件名称
引用后就和调用本地的组件一样使用,很方便的。实际的逻辑部分是指远程的webservice服务器上。
不需要动app.config,程序自己会自动导入,其实是用wsdl文件导向的,如果你引用的webservice的ip地址或者域名换了,那就需要重新导入了。 参考技术A 将webservice地址写如app.config,程序中引用地址时从app.config获取地址,制作安装部署文件的时候,将app.config一起打进去,这样以后就可以只改app.config配置文件,无需再编译。除此之外别无他法实现你所谓的动态。 参考技术B 在项目的“引用”上点击右键,选择“添加web引用”,然后按照提示把你要引用的webservices的地址添加进来就可以了,你就可以通过命名空间进行引用了。 参考技术C 建议你看一下C#里如何操作app.config(与asp.net的web.config操作方式相同),可以用ConfigurationManager来访问,一般来说,你这种需求可以采用appSettings来配置,例如:
<add key="ServicesURL" value="http://localhost/xxxx.aspx"/>
然后程序中,通过:
ConfigurationManager.AppSettings["ServicesURL"].ToString()来获取该值。以后要变更的话,就直接改变app.config里的value值即可。
这是最简单的方法。
还可以继承ConfigurationSection来实现,具体的可以Google一下。本回答被提问者采纳 参考技术D 动态设置,WebService的引用路径
以上是关于c#,winform webservice传输量大的二进制数据怎样显示进度条!的主要内容,如果未能解决你的问题,请参考以下文章
web service做啥用的,我知道winform是做c/S的软件,webform 是做网站