首页  >  文章  >  后端开发  >  C# 等待

C# 等待

WBOY
WBOY原创
2024-09-03 15:04:52435浏览

C# 编程语言中的await 关键字用于挂起所有包含的异步方法,直到异步方法所呈现的操作完成为止。为了让开发人员以异步方式调用多个函数,async 和await 被高度使用和推荐。只需简单地实现await 函数和async,就可以继承异步编程的几乎所有功能。现在让我们继续了解实现 wait 关键字的标准语法。

语法:

await 关键字的标准语法很简单,它包括关键字后跟函数或方法。语法如下:

await anyFunction();

这里,我们的语法以await关键字开头,后跟一个函数,该函数可以是程序中的任何函数。自由是在语法中调用并将等待关键字传递给任何方法类或函数。

await 关键字在 C# 中如何工作?

接下来,我们将了解 wait 关键字在 C# 中的实际工作原理,基本上,await 关键字会暂停异步方法的操作,直到操作数完成操作。然后,异步操作完成后,await关键字如果有则返回操作结果。同样的await关键字不会阻止异步方法的任何威胁,并且在挂起封闭的异步方法之后,程序的控制权将返回给程序调用者。因此,这就是await 关键字的工作原理以及如何在必须实现await 关键字的情况下对流程进行编程。继续,我们现在将实现await关键字并看看它在现实生活中的示例中如何工作。

C# 示例等待

现在我们已经了解了await关键字是什么以及它是如何工作的,让我们继续通过示例来演示await关键字。对于我们的第一个示例,我们将简单地使用一个方法,带有 print 语句和await 关键字。

示例#1

代码:

using System;
using System.Threading.Tasks;
class Program {
static void Main(string[] args) {
first_meth();
Console.ReadKey();
}
public static async Task first_meth() {
await Task.Run(() =>  {
for (int a = 0 ; a < 2; a++ )  {
Console.WriteLine(" Simple demonstration of await keyword.");
}
});
}
}

输出:

C# 等待

代码说明:这是await关键字的一个非常简单的演示,其中我们有一个方法和main方法。 main方法调用第一个方法并且必然会被执行。该方法具有await 关键字的实现。输出将是打印两次的打印语句。

示例#2

正如预期的那样,输出是打印了两次的语句。对于我们的下一个示例,我们将有两个完全不依赖的不同方法,我们将通过 main 方法调用它们。程序代码如下:

代码:

using System;
using System.Threading.Tasks;
class Program {
static void Main(string[] args) {
exam1();
exam2();
Console.ReadKey();
}
public static async Task exam1()  {
await Task.Run(() =>  {
for (int a = 0 ; a < 5 ; a++ )  {
Console.WriteLine(" This will be printed 5 times.");
}
});
}
public static void exam2() {
for (int a = 0 ; a < 2 ; a++ ) {
Console.WriteLine(" This statement will be printed 2 times. ");
}
}
}

输出:

C# 等待

代码说明:对于我们的第一个示例,我们有两个完全独立的不同方法,并且我们从程序的主方法中调用了这些方法。从所需的系统文件开始,我们有了带有 main 方法的类程序,在 main 方法中我们调用了要声明的两个方法。我们的第一个方法 exam1 启动,使用await关键字,后跟一个lambda函数和一个打印输出语句的语句。然后我们有第二个方法 exam2,它有一个 for 语句,它将多次打印输出语句。

示例#3

正如预期的那样,输出语句如代码中所述,接下来,我们将用另一个示例实现await 关键字,其中我们将拥有三个方法和很少的打印语句。

代码:

using System;
using System.Threading.Tasks;
class Program {
static void Main(string[] args) {
Console.WriteLine("\n");
callMethod();
Console.ReadKey();
}
public static async void callMethod() {
Task<int> task = exam1();
exam2();
int total = await task;
exam3(total);
}
public static async Task<int> exam1() {
int total = 0;
await Task.Run(() =>
{
for (int a = 0 ; a < 10 ; a++ )  {
Console.WriteLine(" This is a simple statement. ");
total += 1;
}
});
return total;
}
public static void exam2()  {
for (int a = 0 ; a < 2 ; a++ )  {
Console.WriteLine(" This is a second output statement.");
}
}
public static void exam3(int total) {
Console.WriteLine(" Total number of statements from first method are   " + total);
}
}

输出:

C# 等待

代码说明:对于我们的第三个示例,我们有三个不同的方法,并且我们从 main 方法调用这些方法。在我们的 main 方法中,我们调用 callMethod,它有一个调用 exam1 方法的任务,因此 exam1 被执行。根据程序,这里的 exam1 方法不会首先执行,因为它有await关键字,所以它将移动到下一个方法,即 exam1 ,并且将执行 exam2 方法,这是一条语句,打印两次,如for 循环。然后我们的 exam1 方法将被打印,然后是 exam3,exam3 方法是一个单独的语句。总共将打印 13 条输出语句。最后一条语句将打印我们从 exam1 方法打印语句的次数。正如所解释的总共 13 条打印语句,使用多种方法简单执行await关键字。

结论

总而言之,await 关键字用于挂起事件并将程序的控制权返回给调用者。当我们有多种方法和函数时,此功能被广泛使用。 wait 关键字用于将控制权返回给调用者,它只能在异步方法中应用。

以上是C# 等待的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:C# object to XML下一篇:C# Hashtable