c# 비동기 예제

 Senast ändrad 2 augusti, 2019 kl 20:00
aug 022019
 

이 쉬운 방법으로 비동기를 사용하고 C#의 비동기 프로그래밍에 대한 키워드를 기다릴 수 있습니다. 이 예제에서 Method1은 총 길이를 정수 값으로 반환하고 Method1에서 오는 Method3의 길이로 매개 변수를 전달하고 있습니다. 아침 식사를 요리하는 것은 평행하지 않은 비동기 작업의 좋은 예입니다. 한 사람(또는 스레드)이 이러한 모든 작업을 처리할 수 있습니다. 아침 식사 비유를 계속하면 한 사람이 첫 번째 작업이 완료되기 전에 다음 작업을 시작하여 비동기적으로 아침 식사를 만들 수 있습니다. 요리는 누군가가 그것을보고 있는지 여부를 진행합니다. 계란팬을 데우기 시작하자마자 베이컨튀김을 시작할 수 있습니다. 베이컨이 시작되면 빵을 토스터에 넣을 수 있습니다. 이 예제에서는 서로 종속되지 않는 두 가지 방법을 사용하려고 합니다. 이제 두 번째 예제에서 Method1에 종속된 Method3가 있다고 가정해 보겠습니다. 이 문서에서는 비동기 백그라운드 작업을 만들기 위해 C#의 비동기 await 키워드를 사용하는 방법에 대한 간단한 예제를 제공합니다. 요즘 비동기 프로그래밍은 비동기의 도움으로 매우 인기가 있으며 C #의 키워드를 기다리고 있습니다.

비동기 프로그래밍은 CPU 바인딩된 작업에 전혀 이점을 제공하지 않습니다. ”대기 중”이 없습니다. void를 반환하는 비동기 메서드는 특정 목적을 가지며 비동기 오류 처리기를 가능하게 하지만 비동기 void 메서드는 서로 다른 오류 처리 의미 체계를 갖습니다. 비동기 작업 또는 비동기 작업 메서드에서 예외가 throw되면 해당 예외가 캡처되어 Task 개체에 직접 배치됩니다. 비동기 void 메서드를 사용하면 Task 개체가 관련되지 않으므로 비동기 void 메서드가 시작될 때 활성 상태였던 SynchronizationContext에서 직접 발생하는 예외가 발생합니다. 자세한 내용은 몇 가지 좋은 예가 있는 다음 MSDN 문서를 읽는 것이 좋습니다. ASP.NET 비동기 프로그래밍(AKA 비동기/대기)을 구현하면 시스템이 동일한 하드웨어에서 더 많은 요청을 처리할 수 있으므로 해당 시스템의 처리량(성능이 아님)이 증가합니다. I/O 바인딩된 작업을 캡슐화하여 이 작업을 수행합니다.

비동기는 바이러스처럼 확산되며 일반적으로 좋은 일이지만 응용 프로그램에서 구현을 시작할 위치를 결정할 때 이 점을 염두에 두어야 합니다. 우리는 비동기와 await 키워드의 도움으로 훨씬 적은 노력으로 기존의 비동기 프로그래밍의 모든 이점을 얻을 것이다. 이 간단한 예제에서는 Task.Run() 메서드를 사용하여 await 키워드를 코드에 통합했지만 .NET 프레임워크는 비동기 await와 함께 사용할 수 있는 많은 비동기 호환 API도 제공합니다. 멤버 이름과 작업 또는 작업의 반환 유형에 첨부된 ”비동기” 접미사를 통해 이러한 멤버를 인식할 수 있습니다. 예를 들어 System.IO.Stream 클래스에는 동기 메서드와 함께 CopyToAsync, ReadAsync 및 WriteAsync와 같은 메서드가 포함되어 있습니다CopyTo, 읽기 및 쓰기. 이것은 당신이 비동기 / 대기의 사용을 이해하는 데 도움이 되기를 바랍니다 좋은 간단한 예입니다. 그것은 C # 5 이상의 유연하고 강력한 기능이며 응답 응용 프로그램을 훨씬 쉽게 작성할 수 있습니다. 비동기는 응용 프로그램이 웹 또는 파일 시스템에 액세스하는 경우와 같이 잠재적으로 차단될 수 있는 활동에 필수적입니다.

Tyvärr, det är nu stängt för kommentarer här.

© 2011 Radiostyrd Bilsport Suffusion theme by Sayontan Sinha