首页 > 编程语言 >C#异步延迟Task.Delay()的使用

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

时间:2023-01-25 20:35:12浏览次数:66  
标签:Task Thread C# await Delay html httpClient

一、要在异步方法中需要延迟代码继续往下执行可以使用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秒,然后在继续往下执行,并且程 序不会卡死

 

标签:Task,Thread,C#,await,Delay,html,httpClient
From: https://www.cnblogs.com/handsomeziff/p/17067240.html

相关文章

  • ARC154 解题报告【A-D】
    AtcoderRegularContest154ContestlinkMyresult声明:代码只包含核心代码,交上去会CE!A-SwapDigit设\(a,b\)的第\(i\)位分别为\(a_i,b_i\)。由于\(a_i\)与......
  • 在不受支持的 Mac 上安装 macOS Ventura、Monterey、Big Sur (OpenCore Legacy Patche
    请访问原文链接:https://sysin.org/blog/install-macos-13-on-unsupported-mac/,查看最新版。原创作品,转载请保留出处。作者主页:www.sysin.org随着OpenCoreLegacyPatch......
  • 二个常用的 SourceForge 镜像
    ​​http://sourceforge.net​​总是间歇性抽搐...找了2个代替地址,先记下了:1、​​ftp://ftp.jaist.ac.jp/pub/sourceforge/​​2、​​http://www.mirrorservice.org/site......
  • JavaScript 类型转换
    JavaScript中有两种类型转换:隐式类型转换和显式类型转换。隐式类型转换指JavaScript在运行时自动将一种类型转换为另一种类型。例如,在数学运算中,JavaScript会将字符串......
  • C# 模拟鼠标操作类
    usingSystem;usingSystem.Drawing;usingSystem.Runtime.InteropServices;usingSystem.Security.Permissions;usingSystem.Windows.Forms;namespaceVicky.Help......
  • JavaScript学习笔记—对象的序列化
    JS中的对象使用时都是存在于计算机的内存中序列化指将对象转换为一个可以存储的格式,在JS中对象的序列化通常是将一个对象转换为字符串(JSON字符串)序列化的用途,对象转换为......
  • WMI and ACPI 问题
    微软的资料如下:​​http://msdn.microsoft.com/en-us/library/windows/hardware/Dn614028(v=vs.85).aspx​​Code:​​http://code.msdn.microsoft.com/windowshardware/WMI-......
  • 说一说JavaScript有几种方法判断变量的类型?
    typeof、instanceof、Object.prototype.toString.call()(对象原型链判断方法)、constructor(用于引用数据类型)标准回答JavaScript有4种方法判断变量的类型......
  • 题解 CF1773H【Hot and Cold】
    赛时跟队友一起摆烂了,于是没做出来,回来补题。如果询问到了答案,可以直接判断并退出,因此下文的询问过程并没有考虑这一点。显然“\((1,1)\)比\((0,0)\)离所求位置更近”......
  • JavaScript学习笔记—对象的解构
    constobj={name:"孙悟空",age:18,gender:"男"};let{name,age,gender}=obj;//声明变量同时解构变量console.log(name,age,gender);//孙悟空18男let......