Во многих областях проекта, над которым я работаю, есть простая проверка тайм-аута, которая в основном запускает код через цикл try до тех пор, пока он не завершится успешно или не пройдет 10 секунд.
class Timeout {
private readonly DateTime timeoutDate;
public bool FlagSuccess;
public Timeout() {
timeoutDate = DateTime.UtcNow.AddSeconds(10);
flagSuccess = false;
}
public bool continueRunning() {
if (!flagSuccess && DateTime.UtcNow < timeoutDate) return true;
else return false;
}
}
Вот пример используемого класса:
Timeout t = new Timeout();
while (t.continueRunning()) {
try {
//PUT CODE HERE
t.flagSuccess = true;
}
catch(Exception e) {
Console.WriteLine(e.Message);
}
}
Прежде чем я это реализую, есть ли лучший и более стандартный способ сделать это?То, что я имею выше, основано на моей слепой интуиции.