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是指在网络环境里发布可用组件的方式,关于如何定位组件的位置和功能部分,原理是靠内置的XML文件来确定。你说的动态地址,是指为了防止别人攻击webservice组件服务器而定制的方式,同时也是为了隐藏组件的实际地址而设定的,这个其实可以通过动态域名来实现,也就是说可以用域名指向,在域名向地址转换的过程中,可以动态地址,这样就无法知道实际的地址所在了,加强了保密性。
关于如何配置和读取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 是做网站

C# winfrom将文件通过IIS(http协议)上传到服务器上

C# winform 如何引用webservices

C# winForm添加webservice接口

winform调用webservice方法

如何修改 webservice里面的参数