2010-07-08 295 views
1

我有一个过程,可以卡住在一个无限循环,我想添加一个5秒的超时,所以它不会永远挂起。设置超时?

bool FlagSuccess = false; 
while (FlagSuccess == false) 
{ 
    try 
    { 
    //Blah blah blah 
    FlagSuccess=true; 
    } 
    catch 
    { 
    } 
} 
+1

也许最好是修复循环? – 2010-07-08 15:27:58

+0

修复循环?我很乐意,请进一步解释。 – sooprise 2010-07-08 15:36:36

回答

2

这是我试图避免的构造。但是,如果您必须:

bool FlagSuccess = false; 
DateTime timeout = DateTime.UtcNow.AddSeconds(5); 
while (FlagSuccess == false && DateTime.UtcNow < timeout) 
{ 
    try 
    { 
    //Blah blah blah 
    FlagSuccess=true; 
    } 
    catch 
    { 
    } 
} 
+0

你需要改变它添加5秒,而不是5分 – w69rdy 2010-07-08 15:29:03

+0

我愿意尝试不同的事情。你会推荐我使用什么类型的构造? 我对C#很陌生,很多代码只是在黑暗中摸索着。我很高兴能够学习更多“标准友好”的代码实践,而我仍然是绿色的。 – sooprise 2010-07-08 15:32:25

+0

我会把它改成'DateTime.UtcNow',否则你可能会冒风险,要么根本不旋转循环(真的很糟糕),要么旋转超过一个小时(稍微差一点)。 – 2010-07-08 15:44:00