C#中await和async关键字的简单理解

简介: C#中await和async关键字的简单理解

C# 5.0之后,为了简化异步编程,引入了异步函数的概念,也就是方法标记async,然后可以使用await表达式来等待异步操作返回。

await关键字看起来是一个阻塞线程的调用,但是实际上执行到await位置的时候,当前线程会立即返回,但是等到await表达式执行完成之后,当前线程会继续执行await后面的操作,相比之前的多线程操作先要new Thread,要更新界面,还得Invoke。简直不要方便太多。

 private async void button1_Click(object sender, EventArgs e)
        {
            string html =  await new HttpClient().GetStringAsync("http://www.baidu.com");
            this.textBox1.Text = html;
        }

参考资料《深入理解C#》第15页


目录
相关文章
|
4月前
|
C#
30.C# 关键字 this初步学习
30.C# 关键字 this初步学习
33 1
|
4月前
|
C#
28.c#关键字base初步学习
28.c#关键字base初步学习
24 0
|
4月前
|
C#
27.c#关键字sealed修饰类
27.c#关键字sealed修饰类
45 0
|
4月前
|
开发框架 .NET 编译器
C# 9.0中的静态匿名函数:引入static关键字的新用法
【1月更文挑战第15天】C# 9.0为匿名函数带来了一个新的修饰符static,允许开发者明确指定匿名函数不会捕获其包含作用域中的任何变量。这一特性增强了代码的性能和可读性,同时减少了因不小心捕获变量而导致的潜在错误。本文将详细探讨C# 9.0中静态匿名函数的语法、使用场景以及它们如何影响代码的性能和安全性。
|
4月前
|
SQL 开发框架 .NET
EntityFramework数据持久化复习资料3、C#拓展方法与yield关键字使用
EntityFramework数据持久化复习资料3、C#拓展方法与yield关键字使用
46 0
|
5天前
|
C# UED
C#一分钟浅谈:异步编程基础 (async/await)
在现代软件开发中,异步编程对于提升应用性能和响应性至关重要,尤其是在处理网络请求和文件读 异步编程允许程序在等待操作完成时继续执行其他任务,从而提高用户体验、高效利用资源,并增强并发性。在 C# 中,`async` 用于标记可能包含异步操作的方法,而 `await` 则用于等待异步操作完成。 示例代码展示了如何使用 `async` 和 `await` 下载文件而不阻塞调用线程。此外,本文还讨论了常见问题及解决方案,如不在 UI 线程上阻塞、避免同步上下文捕获以及正确处理异常。
23 0
|
1月前
|
C#
C# async await 异步执行方法
C# async await 异步执行方法
38 0
|
2月前
|
开发框架 .NET C#
【Azure Developer】C# / .NET 静态函数中this关键字的作用
在C#中,`this`关键字用于扩展方法,允许向已有类型添加功能而不修改其源代码。扩展方法必须在静态类中定义,且第一个参数使用`this`修饰,如`public static XElement AcquireElement(this XContainer container, string name, bool addFirst = false)`。这种方式增强了代码的可读性和类型的安全性,尤其在处理第三方库时。
|
3月前
|
开发框架 安全 .NET
C#关键字概览
C#关键字概览
|
4月前
|
存储 Java C++
31.C#:关键字static
31.C#:关键字static
42 1