이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 31433|회답: 5

[출처] .net/c# async/await 있는 작업 클래스

[링크 복사]
게시됨 2017. 10. 20. 오후 10:32:17 | | |
태스크 클래스

작업 클래스는 .NET 4.0 이후 제공된 비동기 연산 추상화로, System.Threading.Tasks.Task로 가는 전체 경로를 포함합니다.

Task 클래스는 반환 값이 없는 비동기 연산을 나타내는 데 사용되며, 반환 값이 있는 비동기 연산의 경우, 작업 클래스의 서브클래스 Task를 사용해야 합니다<TResult>.
작업 클래스가 생성한 작업은 스레드 풀에 추가됩니다.

<TResult>Task/Task 클래스의 주요 구성 요소는 다음과 같습니다:


작업이 생성되면 Start() 메서드를 사용하여 시작할 수 있습니다:


실제 개발에서는 작업 클래스의 정적 메서드 Run() 또는 팩토리 클래스 TaskFactory의 멤버 메서드 StartNew()가 새로운 작업을 생성하고 시작하는 데 더 자주 사용됩니다.

Task 클래스에서 흔히 사용하는 방법들:


async/wait(기분 변경) 키워드

C# 5.0은 비동기 및 wait(비동기) 및 wait(wait) 키워드를 도입하여 언어 수준에서 동시성 지원을 개선했습니다.

비동기는 비동기 메서드를 표시하는 데 사용됩니다:
비동기 키워드는 문맥 키워드로, 메서드와 람다를 수정할 때만 키워드로 취급되고, 다른 영역에서는 식별자로 취급됩니다.
비동기 키워드는 정적 메서드를 표시할 수 있지만, 진입 지점(Main() 메서드)은 표시할 수 없습니다.
비동기로 태그된 메서드의 반환 값은 <TResult>Task, Task, 또는 void 중 하나여야 합니다.
await는 비동기 방법의 결과를 기다리는 데 사용됩니다:
wait(기다리기) 키워드 역시 맥락 키워드이며, 비동기 태깅 방식에서만 키워드로 간주됩니다.
wait(wait) 키워드는 비동기 메서드 앞에 사용할 수 있고, <TResult>Task와 Task는 비동기 작업 실행 종료를 기다리는 데 사용할 수 있습니다.
간단한 비동기 메서드 구조는 다음과 같습니다:
메서드가 비동기 키워드로 표시되어 있는 것이 아니라, 비동기 메서드이며, 비동기 메서드 내에 직접 나타나는 문장들도 동기적으로 실행됩니다비동기적으로 실행되는 콘텐츠는 Task 클래스를 사용하여 실행되어야 합니다
실제로 wait(await) 문이 없는 비동기 메서드는 동기식으로 실행되며, 이 시점에서 컴파일러가 경고를 표시합니다.

간단한 예로, async/await를 사용해 화면에 동시에 콘텐츠를 출력하는 방법:

출력: (모노 4.4.0 & & ArchLinux x64)

위 프로그램에서 async 키워드 태그가 지정된 비동기 메서드에서는 await를 사용하기 전의 코드가 동기적으로 실행되고, await이 호출된 후에는 나머지 코드가 별도의 스레드에서 비동기적으로 실행된다는 것을 쉽게 알 수 있습니다.





이전의:FSADF{:1_2:}
다음:레스트샤프 a. NET(C#) HTTP HELPER CLASS 컴포넌트
게시됨 2017. 11. 1. 오후 7:57:12 |
봐, 봐, 봐
게시됨 2019. 1. 29. 오전 9:37:53 |
바이두에서 오랫동안 검색했어요 #비동기 작업 호출()나는 서 있었다위 메서드는 async 키워드를 사용해 작업 클래스의 Invoke 메서드를 반환하는데, 이는 스레드 문제도 해결합니다. 이 함수 전체의 의미는 무엇인가요?
게시됨 2019. 1. 29. 오후 9:14:36 |
이것은 정말 좋은 일이며, 시간이 나면 이런 공유를 쓸 예정입니다
게시됨 2019. 2. 15. 오후 4:17:22 |
출력 결과는 비동기 실행의 효과를 명확히 볼 수 없으며, 비동기 입력은 동시적으로 이루어져야 합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com