我需要能够取消对我的Web服务进行异步调用。我拥有的一个解决方案是使用管理自己的线程,并使用来自SOAP客户端的同步方法。这工作正常,它需要一些更细粒度的线程管理。取消异步Web服务调用
如果我使用任何从添加Web服务引用提供这两种模式,说:
var Client = new ASL_WS.SvcSoapClient()
IAsyncResult result = Client.BeginAuthenticateUser(Email, Password, new AsyncCallback(AuthCompleted));
或
var Client = new ASL_WS.SvcSoapClient()
Client.AuthenticateUserCompleted += AuthCompleted;
Client.AuthenticateUserAsync(Email, Passsword);
做任何这两种模式的给我取消的方式请求?一个用例可能是:用户登录,但想在验证呼叫完成之前取消。
当然,我可以通过修改传递给这些调用的asyncState并将其设置为禁用UI更新来实现这一点,但这不是我所期待的。
我可以只取消所有未完成的操作。 Client.Abort()是否取消这样的操作。如果有很多异步请求会被取消吗?有没有其他的API方法可以做到这一点?
有道理。我花了一段时间才弄清楚代码在做什么,但现在很明显。我最终做了类似的事情。谢谢。 – Candide