C#异步延迟Task.Delay()的使用

一、要在异步方法中需要延迟代码继续往下执行可以使用await Task.Delay(),效果类似Thread.Sleep()。

两者之间的不同是

1、await Task.Delay实质创建一个运行给定时间的任务,不会引起程序卡死。Thread.Sleep使当前线程休眠给定时间,会引起来程序卡死

2、Task.Delay() 比 Thread.Sleep() 消耗更多的资源,但是Task.Delay()可用于为方法返回Task类型;或者根据CancellationToken取消标记动态取消等待

二、代码示例:

复制代码
private async void button1_Click(object sender, EventArgs e)
        {
            using(HttpClient httpClient = new HttpClient())
            {
                string html = await httpClient.GetStringAsync("https://baidu.com/");
                textBox1.Text = html.Substring(0, 200);
                await Task.Delay(3000);

                string html2 = await httpClient.GetStringAsync("https://www.cnblogs.com/");
                textBox1.Text = html.Substring(0, 50);

            }
        }
复制代码

运行到await Task.Delay(3000); 程 序会停止3秒,然后在继续往下执行,并且程 序不会卡死

 

posted @   ziff123  阅读(5035)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示