C#AWS Lambda和Thread.Sleep()
我在AWS lambda中运行了一个foreach循环,其中有一个Thread.Sleep(2000)来限制执行。然而,代码似乎没有暂停:我已经记录了执行前后的时间戳。以下是该方法的简化版本:C#AWS Lambda和Thread.Sleep(),c#,aws-lambda,C#,Aws Lambda,我在AWS lambda中运行了一个foreach循环,其中有一个Thread.Sleep(2000)来限制执行。然而,代码似乎没有暂停:我已经记录了执行前后的时间戳。以下是该方法的简化版本: private async Task<string> ExecuteAutoRetryRequest(string url) { string html = String.Empty; int numberOfRe
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;
}
private异步任务ExecuteAutoRetryRequest(字符串url)
{
string html=string.Empty;
int numberOfRetry=3;
while(numberOfRetry>0)
{
尝试
{
html=等待执行任务(url);
如果(!string.IsNullOrEmpty(html)和&!html.Contains(“拒绝访问”))
{
打破
}
}
捕获(例外情况除外)
{
等待日志异常(例如消息);
}
//请等待两秒钟,然后重试
Console.WriteLine(DateTime.Now.ToString());
《睡眠》(2000年);
Console.WriteLine(DateTime.Now.ToString());
重试次数--;
}
返回html;
}
我这样称呼它var htmlSnapShotResult=await ExecuteAutoRetryRequest(url)代码>
我确信这是关于lambdas如何运行的一些基本信息,我不知道,但是如果您能提供任何帮助,我们将不胜感激。Alexander在上面的评论是正确的答案:下面正确执行暂停:
等待任务延迟(2000)代码>您能给出一个代码示例以及您在哪里看到问题吗?请尝试等待任务。延迟(2000)