1

我有一个小 C# 项目,它在 Internet 站点上使用 WebRequest 发送唯一数据并返回 HttpWebResponse。现在我想处理没有互联网连接或其他认为数据无法发送或接收的情况。

在我看来,这是使用 try/catch 中的 Webexception 处理该问题的最佳方式。

但它对 Webexception 很重要,程序会记住该操作并在 Internet 或服务再次可访问时重试。

您认为实现这一点的最佳方式是什么?

我阅读了有关队列的信息...如果 Webexception 将抛出并再次尝试服务是否再次可访问,则可能将操作放入队列中?

4

3 回答 3

0

计时器应该工作。当抛出异常时,重置计时器。当间隔发生时,您可以尝试再次连接

于 2014-12-27T17:37:27.823 回答
0

我认为一个简单的方法是创建一个循环来调用一个布尔方法,如果在这个内部发生一个异常返回 false 并且循环继续

于 2014-12-27T17:46:37.430 回答
0

@Denis 我发现这个问题很有趣,我试了一下。

https://dotnetfiddle.net/2lx8FI

  • List<string>通过将 a 转换为IObservable 序列的基于推送的队列。Thread.Sleep控制从队列中读取项目的频率。
  • 如果是WebException,我们等待“一会儿”并将 URL 添加回List<string>
  • 从用户输入中读取 URL 仅用于测试目的。

我希望它有帮助

于 2014-12-27T19:47:25.400 回答