繁体   English   中英

C# AWS Lambda 和 Thread.Sleep()

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM