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秒,然后在继续往下执行,并且程 序不会卡死
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!