C#AWS Lambda和Thread.Sleep()

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

我在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;
        }
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)