我在 MSDN 上遇到了这个 C# 代码示例,它展示了如何使用委托来包装异步 DNS 查找操作的回调方法:
http://msdn.microsoft.com/en-us/library/ms228972.aspx
从代码中可以看出,每次请求的发起方法都会增加一个计数器,每次执行回调方法时,计数器就会减少一次。初始化方法处于循环中,直到计数器达到零,在等待时保持 UI 更新。我在示例中没有看到的是一种稳健的方法,用于在过程花费太长时间时使启动方法超时。我的问题是:
在这个例子中建立一个健壮的超时机制的好方法是什么?如果决定中止整个操作,是否有必要进行任何调用以清理任何未决的 DNS 查找?如果有人知道在此调用/回调对场景中演示强大的超时处理的良好资源或示例,我想知道它。
自 VS2012 以来添加 的async-await模式是否更好地服务于这种情况?
是否有与在 Windows Phone 上下文中执行相关的任何提示或特定领域的问题?