我必须构建一个应用程序,它将多次使用Webclient从服务器检索每个“t”秒信息。
这是一个小计划,向您展示我在我的应用程序中正在做什么:
我可以在步骤3之前创建所有步骤而不会出现任何错误。当我调用“USER_GETFRIEND”Web客户端时,我面临两个主要问题:
一方面我发现我的线程数量急剧增加。 =>我一直认为,当WebClient完成其指令时,它会自行关闭,但显然在Asyncronous调用中不会发生。
另一方面,我很惊讶地看到为两个Webclient调用使用相同的代理(即:如果我声明test.MainSoapClient proxy = new test.MainSoapClient()),我将检索的数据“USER_GETFRIEND”e.Result,直接发送到我的“USER_GETINFO”数组。因此,UI上的我的姓名和电子邮件地址被USER_GETFRIEND数组中的相同值替换。所以我的姓名更改为我的朋友电子邮件等等......
我想知道是否可以关闭我不再使用的WebClient调用(或线程)来防止任何冲突?或者,如果有人对我的代码以及我应该如何开发我的应用程序有任何建议,请随时提出建议。
答案 0 :(得分:0)
几个星期前我得到了答案,并且发现回答我自己的问题非常重要。
我的整个问题是我没有取消订阅异步调用,而且我使用的是“添加服务引用”中的相同代理类:
所以当我使用时:
proxy.webservice += new Eventhandler<whateverinhere>(my_method);
我从未这样做过:
proxy.webservice -= new Eventhandler<whateverinhere>(my_method);
希望它会对某人有所帮助。