C# 대기

WBOY
풀어 주다: 2024-09-03 15:04:52
원래의
432명이 탐색했습니다.

C# 프로그래밍 언어의 wait 키워드는 비동기 메서드에서 제공하는 작업이 완료될 때까지 포함된 모든 비동기 메서드를 일시 중단하는 데 사용됩니다. 개발자가 비동기 방식으로 여러 함수를 호출하려면 async 및 wait를 많이 사용하고 권장합니다. async와 함께 wait 함수만 간단히 구현하면 비동기 프로그래밍의 거의 모든 기능을 상속받을 수 있습니다. 이제 Wait 키워드를 구현하기 위한 표준 구문을 이해해 보겠습니다.

구문:

await 키워드의 표준 구문은 간단합니다. 여기에는 키워드 뒤에 함수나 메서드가 오는 것이 포함됩니다. 구문은 다음과 같습니다.

await anyFunction();
로그인 후 복사

여기에는 Wait 키워드로 시작하고 그 뒤에 함수가 오는 구문이 있습니다. 이는 프로그램에 대한 모든 함수일 수 있습니다. 구문 내의 메서드 클래스나 함수에 대해 Wait 키워드를 호출하고 전달하는 것은 자유입니다.

C#에서 키워드 작동을 어떻게 기다리나요?

계속해서 C#에서 Wait 키워드가 실제로 어떻게 작동하는지 이해하고 기본적으로 Wait 키워드는 피연산자가 작업을 완료할 때까지 비동기 메서드의 작업을 중지합니다. 그런 다음 비동기 작업이 완료된 후 Wait 키워드는 작업 결과가 있는 경우 해당 결과를 반환합니다. 이 동일한 wait 키워드는 비동기 메서드의 위협을 차단하지 않으며 바깥쪽 비동기 메서드를 일시 중단한 후 프로그램 제어가 프로그램 호출자에게 다시 반환됩니다. 따라서 이것은 Wait 키워드가 작동하는 방식과 Wait 키워드를 구현하면서 흐름을 프로그래밍하는 방법입니다. 계속해서 이제 Wait 키워드를 구현하고 실제 사례에서 어떻게 작동하는지 살펴보겠습니다.

C# wait의 예

이제 Wait 키워드가 무엇인지, 어떻게 작동하는지 이해했으므로 이제 예제와 함께 Wait 키워드를 시연해 보겠습니다. 여기서 첫 번째 예에서는 print 문과 wait 키워드가 포함된 단일 메서드를 사용합니다.

예시 #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# 대기

코드 설명: 이는 단일 메서드와 기본 메서드가 있는 wait 키워드에 대한 매우 간단한 데모입니다. 기본 메서드는 첫 번째 메서드를 호출하고 실행되도록 바인딩되어 있습니다. 이 메서드에는 wait 키워드가 구현되어 있습니다. 출력은 두 번 인쇄된 인쇄문이 됩니다.

예시 #2

예상대로 출력은 두 번 인쇄된 명세서입니다. 다음 예에서는 전혀 종속되지 않는 두 가지 다른 메서드가 있으며 기본 메서드를 통해 호출합니다. 프로그램 코드는 다음과 같습니다.

코드:

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# 대기

코드 설명: 첫 번째 예에서는 완전히 독립적인 두 가지 메서드가 있으며 프로그램의 기본 메서드에서 이러한 메서드를 호출했습니다. 필요한 시스템 파일부터 시작하여 선언할 두 메서드를 호출하는 기본 메서드인 기본 메서드가 포함된 클래스 프로그램이 있습니다. 첫 번째 방법인 Exam1은 Wait 키워드와 람다 함수 및 출력 문을 인쇄하는 문으로 시작됩니다. 그런 다음 for a 문이 있는 두 번째 방법인 Exam2가 있는데, 이는 출력 문을 여러 번 인쇄합니다.

예시 #3

예상대로 출력 문은 코드에 언급된 대로입니다. 계속해서 세 가지 메서드와 소수의 인쇄 문이 있는 또 다른 예를 사용하여 Wait 키워드를 구현하겠습니다.

코드:

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# 대기

코드 설명: 세 번째 예에서는 세 가지 다른 메서드가 있으며 이러한 메서드를 기본 메서드에서 호출합니다. 기본 메소드를 사용하여 test1 메소드를 호출하는 작업이 있는 callMethod를 호출하므로 Exam1이 실행됩니다. 프로그램에 따라 여기서 Exam1 메소드는 wait 키워드가 있으므로 먼저 실행되지 않으므로 다음 메소드인 Exam1로 이동하고 Exam2 메소드가 실행됩니다. 이는 명령문이며 위에서 언급한 대로 두 번 인쇄됩니다. for 루프. 그러면 Exam1 메서드가 인쇄되고 그 뒤에 Exam3이 인쇄되며, Exam3 메서드는 단일 명령문입니다. 전체적으로 13개의 출력문이 인쇄됩니다. 마지막 명령문은 Exam1 메소드에서 명령문을 인쇄한 횟수를 인쇄합니다. 총 13개의 print 문 수에 대해 설명했듯이 여러 메서드를 사용하여 Wait 키워드를 간단하게 실행합니다.

결론

결론적으로, wait 키워드는 이벤트를 일시 중지하고 호출자에게 프로그램 제어권을 다시 가져오는 데 사용됩니다. 이 기능은 여러 메서드와 함수가 있을 때 널리 사용됩니다. Wait 키워드는 호출자에게 컨트롤을 다시 반환하는 데 사용되며 비동기 메서드 내에서만 적용할 수 있습니다.

위 내용은 C# 대기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!