c# - 调用相同的函数直到它连接到服务器

标签 c# exception ibm-mq

我正在设计一个系统,我需要不断尝试连接到 MQ 服务器,直到我获得连接。

默认情况下,如果 MQ 不可用,它将完全异常。如何才能一次又一次地调用相同的方法,直到我获得连接。我知道我可以使用递归,有没有更好的方法来做到这一点。因为我想避免无限循环。我还想等待进一步处理,直到我获得连接。

我在 C# 中使用 .net 2.0。它是窗口服务应用程序。

最佳答案

基本结构如下:

while(true)
{
  try
  {
    // attempt connection
    break; // Will only get here if an exception was not thrown
  }
  catch
  {
    // Logging, sleep statement
  }
}

如果您有任何方法可以查明是否无法建立连接(抛出异常除外),请使用该方法。异常不应该用于流控制,我展示的示例是针对极端情况的。

为了避免无限循环,您可能需要添加计数(例如,只尝试 10 次)。

关于c# - 调用相同的函数直到它连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2663111/

相关文章:

c# - 按值而非引用将 List<T> 分配给另一个 List<T>

java - 使用 Java 类的 WebSphere MQ 窗口到窗口身份验证

c# - Asp.net MVC3 Razor View 引擎,使用 "Multiline @:"转义几行文本?

c# - 第三方与 System.Net.Mail.SmtpClient

.net - SqlBulkCopy 异常不包含列名

c# - 部署共享点事件接收器时为 "Operation is not valid due to the current state of the object"

c# - 找出具体异常

ibm-mq - runmqsc 选择深度大于 0 的队列

jms - 在 WMQ 中创建 JMS 主题发布者返回 2035 未授权

c# - 迭代数据表中的特定列