C# 5.0 introduces two keywords-async and await
C# 5.0 introduces two keywords async and await. These two keywords help us simplify the implementation code of asynchronous programming to a great extent, and the tasks in TPL have a great relationship with async and await
private async void button1_Click(object sender, EventArgs e) { var length = AccessWebAsync(); // 这里可以做一些不依赖回复的操作 OtherWork(); this.textBox1.Text += String.Format("\n 回复的字节长度为: {0}.\r\n", await length); this.textBox2.Text = Thread.CurrentThread.ManagedThreadId.ToString(); } private async Task<long> AccessWebAsync() { MemoryStream content = new MemoryStream(); // 对MSDN发起一个Web请求 HttpWebRequest webRequest = WebRequest.Create("http://msdn.microsoft.com/zh-cn/") as HttpWebRequest; if (webRequest != null) { // 返回回复结果 using (WebResponse response = await webRequest.GetResponseAsync()) { using (Stream responseStream = response.GetResponseStream()) { await responseStream.CopyToAsync(content); } } } this.textBox3.Text = Thread.CurrentThread.ManagedThreadId.ToString(); return content.Length; } private void OtherWork() { this.textBox1.Text += "\r\n等待服务器回复中.................\n"; }
async is a synchronous execution program, while await plays the role of dividing fragments and suspending the caller. It does not create new threads. According to the analysis of the master:
The first part of the code and the later part of the code where the await keyword appears are executed synchronously (that is, they are executed on the calling thread, which is the GUI thread, so there is no problem of cross-thread access to controls), the key point of await The code snippet is executed on a thread pool thread.
In the above code, methods such as GetResponseAsync encapsulated by FCL are called so as not to block the current UI thread. await does not create a new thread, but as far as here, the await expression does create The new thread - GetResponseAsync does so much that it creates the illusion of superficial synchronization. I have written an article before
C#async and await asynchronous programming study notes
The await keyword is closely related to Task. It can be seen from its specific return value that the deeper await It should be equivalent to the continuewith function of task. Therefore, using the async & await keywords to achieve asynchronous implementation must either call the asynchronous method encapsulated by FCL, or we can call task ourselves to create a new thread to share the tasks of the UI thread to prevent the UI thread. block.
The above is the detailed content of C# 5.0 introduces two keywords-async and await. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











The development of artificial intelligence (AI) technologies is in full swing today, and they have shown great potential and influence in various fields. Today Dayao will share with you 4 .NET open source AI model LLM related project frameworks, hoping to provide you with some reference. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel is an open source software development kit (SDK) designed to integrate large language models (LLM) such as OpenAI, Azure

C is an ideal language for beginners to learn programming, and its advantages include efficiency, versatility, and portability. Learning C language requires: Installing a C compiler (such as MinGW or Cygwin) Understanding variables, data types, conditional statements and loop statements Writing the first program containing the main function and printf() function Practicing through practical cases (such as calculating averages) C language knowledge

Pythonempowersbeginnersinproblem-solving.Itsuser-friendlysyntax,extensivelibrary,andfeaturessuchasvariables,conditionalstatements,andloopsenableefficientcodedevelopment.Frommanagingdatatocontrollingprogramflowandperformingrepetitivetasks,Pythonprovid

C++ programming puzzles cover algorithm and data structure concepts such as Fibonacci sequence, factorial, Hamming distance, maximum and minimum values of arrays, etc. By solving these puzzles, you can consolidate C++ knowledge and improve algorithm understanding and programming skills.

Python is an ideal programming introduction language for beginners through its ease of learning and powerful features. Its basics include: Variables: used to store data (numbers, strings, lists, etc.). Data type: Defines the type of data in the variable (integer, floating point, etc.). Operators: used for mathematical operations and comparisons. Control flow: Control the flow of code execution (conditional statements, loops).

Getting Started with Python Programming Install Python: Download and install from the official website. HelloWorld!: Use print("HelloWorld!") to print the first line of code. Practical case: Calculate the area of a circle: Use π (3.14159) and the radius to calculate the area of the circle. Variables and data types: Use variables to store data. Data types in Python include integers, floating point numbers, strings, and Boolean values. Expressions and assignments: Use operators to connect variables, constants, and functions, and use the assignment operator (=) to assign values to variables. Control flow: if-else statement: execute different code blocks based on conditions, determine odd

C is an ideal choice for beginners to learn system programming. It contains the following components: header files, functions and main functions. A simple C program that can print "HelloWorld" needs a header file containing the standard input/output function declaration and uses the printf function in the main function to print. C programs can be compiled and run by using the GCC compiler. After you master the basics, you can move on to topics such as data types, functions, arrays, and file handling to become a proficient C programmer.

Java is a popular programming language that can be learned by both beginners and experienced developers. This tutorial starts with basic concepts and progresses through advanced topics. After installing the Java Development Kit, you can practice programming by creating a simple "Hello, World!" program. After you understand the code, use the command prompt to compile and run the program, and "Hello, World!" will be output on the console. Learning Java starts your programming journey, and as your mastery deepens, you can create more complex applications.
