[英]C# AWS Lambda and Thread.Sleep()
我在 AWS lambda 内部运行了一个 foreach 循环,并使用 Thread.Sleep(2000) 来限制执行。 但是,代码似乎没有暂停:我已经记录了执行前后的时间戳。 这是该方法的简化版本:
private async Task<string> ExecuteAutoRetryRequest(string url)
{
string html = String.Empty;
int numberOfRetry = 3;
while (numberOfRetry > 0)
{
try
{
html = await ExecuteGetRequest(url);
if (!string.IsNullOrEmpty(html) && !html.Contains("Access Denied"))
{
break;
}
}
catch (Exception ex)
{
await LogException(ex.Message);
}
// Wait two seconds and try again
Console.WriteLine(DateTime.Now.ToString());
Thread.Sleep(2000);
Console.WriteLine(DateTime.Now.ToString());
numberOfRetry--;
}
return html;
}
我这样称呼它var htmlSnapShotResult = await ExecuteAutoRetryRequest(url);
我确信这是我不知道的关于 lambdas 如何操作的基本知识,但我们将不胜感激。
上面亚历山大的评论是正确的答案:以下正确执行暂停:
await Task.Delay(2000);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.