如何检查线程是否在x秒中休眠c#

时间:2016-03-09 09:45:44

标签: c#

我写应用程序需要检查checkLogin()睡觉的时间> 30秒。

然后,它将中断此while loop并继续该程序。

我的代码是这样的:

while(!Account.checkLogin())
{
    Thread.Sleep(1000);
}

如何检查:

while(!Account.checkLogin())
{
    Thread.Sleep(1000);
    if(Thread.Sleep like 30000)
        continues;
}

2 个答案:

答案 0 :(得分:2)

如果我正确理解了这个问题,你可以总结一下迭代,并在终止条件下使用它们,如下所示。

int MAX_ITERATIONS = 30;
int NumOfIterations = 0;

while(!Account.checkLogin() && NumOfIterations < MAX_ITERATIONS)
{
    Thread.Sleep(1000);
    NumOfIterations++;
}

答案 1 :(得分:0)

你可以睡30秒:

Thread.Sleep(30000);

然而,这会阻碍线程并阻止你在中间做任何事情。我更喜欢使用TimeSpan,例如:

DateTime started = DateTime.UtcNow;

while (!Account.checkLogin())
{
    TimeSpan ts = DateTime.UtcNow - started;

    if (ts.TotalSeconds >= 30)
        break;

    Thread.Sleep(1000);
}