异步请求 有没人会? 比如 Begin...() 后,系统会回调委托然后我用End..()得到结果 ... 但是当委托被调用时,整个请求已经结束.我怎么在整个请求过程中获得请求的完成情况(进度)或者中途取消? 如果中途的完成情况不能获得,那和同步有什么区别?? 比如 HttpWebRequest,MSDN上的例子够白痴的,在执行BeginGetResponse后,马上ManualResetEvent.WaitOne(); // 死等,当前线程被堵塞
然后委托RespCallback被调用,注意这个委托被调用,表明整个请求已完成,然后ManualResetEvent.Set();当前线程要等整个请求完成了才往下走,TNND,这不就是同步吗? 我的问题是: 在 BeginGetResponse()被调用后,我在实际请求过程中,怎么获得请求的完成情况(进度)甚至执行到一半时把它取消?谢谢
然后委托RespCallback被调用,注意这个委托被调用,表明整个请求已完成,然后ManualResetEvent.Set();当前线程要等整个请求完成了才往下走,TNND,这不就是同步吗? 我的问题是: 在 BeginGetResponse()被调用后,我在实际请求过程中,怎么获得请求的完成情况(进度)甚至执行到一半时把它取消?谢谢
// Wait until the ManualResetEvent is set so that the application
// does not exit until after the callback is called.
allDone.WaitOne();
。
如果你说的MSDN中的这段代码,请看清注释,我们可以把程序改善,
比如在每次EndRead调用时,显示进度相应,