循环直到满足条件或时间已过

罗伯特

在我的应用程序中,我有一个带有字段的对象DependentPC,它可以保存 IP 地址或网络共享。如果它是一个 IP 地址,它会执行一个简单的 Ping 并存储结果,但如果它是网络共享,我需要它继续检查共享,直到它存在或指定的时间已经过去。这是我到目前为止所得到的:

//Determines if it's a network share or not.
if (appToRun.DependentPC.Contains(@"\"))
{
    var startTime = DateTime.Now;
    var directoryInfo = new DirectoryInfo(appToRun.DependentPC);

    //do until true or timeout reached.
    while (DateTime.Now - startTime < TimeSpan.FromSeconds(Convert.ToInt32(DependentPCTimeout)) || !directoryInfo.Exists) { }

    if (!directoryInfo.Exists)
    {
        XtraMessageBox.Show($"Could not find or get a reply from the computer share '{appToRun.DependentPC}'. ", $"{appToRun.DependentPC} Not Found", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        return false;
    }
}
else
{
    //Ping computer.
    if (PingComputer(appToRun.DependentPC) != IPStatus.Success)
    {
        XtraMessageBox.Show($"Could not find or get a reply from the computer '{appToRun.DependentPC}'. ", $"{appToRun.DependentPC} Not Found", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        return false;
    }
}

变量的值DependentPCTimeout是 50,网络共享是“\192.168.103.100\WorkingFolder。所以这在一定程度上是有效的。使用网络共享时,它似乎总是等到时间过去后再继续,即使目录存在。我尝试|在 while 循环中使用单个 OR ,但这似乎使它永远锁定。

爱德华·N

在条件语句中使用 OR 运算符时,如果第一个条件为 TRUE,则其余条件将被跳过。

在您的情况下,DateTime.Now - startTime < TimeSpan.FromSeconds(...)在一段时间内始终为真。

我建议你可以这样实现

//do until true or timeout reached.
  while (!directoryInfo.Exists) { 
    if (DateTime.Now - startTime > TimeSpan.FromSeconds(Convert.ToInt32(DependentPCTimeout)))
        break;
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript循环直到满足条件

来自分类Dev

循环 API 直到满足条件

来自分类Dev

如何循环直到用户输入满足条件?

来自分类Dev

循环进入JavaScript,直到满足条件

来自分类Dev

PHP无限循环,直到满足条件

来自分类Dev

直到满足循环条件-循环继续进行-Powershell

来自分类Dev

直到满足循环条件-循环继续进行-Powershell

来自分类Dev

Pandas:while 循环在 for 循环之前,直到满足某个条件

来自分类Dev

Python:最有效的循环,直到满足条件

来自分类Dev

如何编写一个循环,直到满足条件为止

来自分类Dev

Spring批处理如何循环运行作业直到满足条件?

来自分类Dev

我如何留在 for 循环的元素中直到满足条件?

来自分类Dev

行动直到满足条件

来自分类Dev

循环并更新数组值直到满足条件,或者直到完成 100 次循环?

来自分类Dev

如何阻止直到满足条件

来自分类Dev

继续提示直到满足条件

来自分类Dev

选择行直到满足条件

来自分类Dev

R样本直到满足条件

来自分类Dev

在python中使用多个条件进行while循环直到满足一个条件

来自分类Dev

循环运行直到满足条件,但insert语句仅使用一次

来自分类Dev

在R中重复两个循环,直到在R中满足条件

来自分类Dev

如何不断地循环遍历代码直到满足条件?

来自分类Dev

中断嵌套循环,直到满足下一个条件

来自分类Dev

在循环中对数字进行除法,直到它满足条件 = 0

来自分类Dev

如何在 XSLT 中为每个循环运行直到满足某些条件

来自分类Dev

在 R-studio 中,如何使用相同的 [i] 重复 for 循环,直到满足特定条件?

来自分类Dev

如何暂停 for 循环的完成,直到满足 AudioIsCompletedCondition

来自分类Dev

R重复功能,直到满足条件

来自分类Dev

在python中扩展列表,直到满足条件

Related 相关文章

  1. 1

    Javascript循环直到满足条件

  2. 2

    循环 API 直到满足条件

  3. 3

    如何循环直到用户输入满足条件?

  4. 4

    循环进入JavaScript,直到满足条件

  5. 5

    PHP无限循环,直到满足条件

  6. 6

    直到满足循环条件-循环继续进行-Powershell

  7. 7

    直到满足循环条件-循环继续进行-Powershell

  8. 8

    Pandas:while 循环在 for 循环之前,直到满足某个条件

  9. 9

    Python:最有效的循环,直到满足条件

  10. 10

    如何编写一个循环,直到满足条件为止

  11. 11

    Spring批处理如何循环运行作业直到满足条件?

  12. 12

    我如何留在 for 循环的元素中直到满足条件?

  13. 13

    行动直到满足条件

  14. 14

    循环并更新数组值直到满足条件,或者直到完成 100 次循环?

  15. 15

    如何阻止直到满足条件

  16. 16

    继续提示直到满足条件

  17. 17

    选择行直到满足条件

  18. 18

    R样本直到满足条件

  19. 19

    在python中使用多个条件进行while循环直到满足一个条件

  20. 20

    循环运行直到满足条件,但insert语句仅使用一次

  21. 21

    在R中重复两个循环,直到在R中满足条件

  22. 22

    如何不断地循环遍历代码直到满足条件?

  23. 23

    中断嵌套循环,直到满足下一个条件

  24. 24

    在循环中对数字进行除法,直到它满足条件 = 0

  25. 25

    如何在 XSLT 中为每个循环运行直到满足某些条件

  26. 26

    在 R-studio 中,如何使用相同的 [i] 重复 for 循环,直到满足特定条件?

  27. 27

    如何暂停 for 循环的完成,直到满足 AudioIsCompletedCondition

  28. 28

    R重复功能,直到满足条件

  29. 29

    在python中扩展列表,直到满足条件

热门标签

归档