【发布时间】:2010-10-17 11:16:48
【问题描述】:
我正在寻找通用的尝试并在 C# 中使用超时重试。基本上,我想要以下内容:
bool stopTrying = false;
DateTime time = DateTime.Now;
while (!stopTrying)
{
try
{
//[Statement to Execute]
}
catch (Exception ex)
{
if (DateTime.Now.Subtract(time).Milliseconds > 10000)
{
stopTrying = true;
throw ex;
}
}
}
在上述情况下,我等待了 10 秒,但它应该是基于参数的可变超时。我不想在需要使用它的地方重复这个完整的代码。我的代码中有多个地方不是 API 内置的超时,如果应用程序还没有准备好执行语句,我会遇到异常。这也可以避免在这些声明之前对我的应用程序中的延迟进行硬编码。
澄清:有问题的陈述可能类似于作业。如果我使用委托和method.Invoke,调用范围不是在委托内部而不是原始方法吗?
【问题讨论】: