Async / Await 사용법
Task 비동기는 코드에 대한 추상화가 가능하고 비동기적으로 실행된다.
Await 키워드는 작업을 차단하지 않는 방식으로 처리 Async / Await 사용법
Task 비동기는 코드에 대한 추상화가 가능하고 비동기적으로 실행된다.
static async Task<Toast> MakeToastWithButterAndJamAsync(int number)
{
var toast = await ToastBreadAsync(number);
ApplyButter(toast);
ApplyJam(toast);
return toast;
}
Task를 사용해서 백그라운드 스레드를 시작하고 Await를 사용해서 결과를 기다리고 후 처리된다.
private DamageResult CalculateDamageDone()
{
// Code omitted:
//
// Does an expensive calculation and returns
// the result of that calculation.
}
calculateButton.Clicked += async (o, e) =>
{
// This line will yield control to the UI while CalculateDamageDone()
// performs its work. The UI thread is free to perform other work.
var damageResult = await Task.Run(() => CalculateDamageDone());
DisplayDamage(damageResult);
};
Task <TResult> 반환 형식에 대한 처리는 다음과 같다.
public static async Task ShowTodaysInfoAsync()
{
string message =
$"Today is {DateTime.Today:D}\n" +
"Today's hours of leisure: " +
$"{await GetLeisureHoursAsync()}";
Console.WriteLine(message);
}
static async Task<int> GetLeisureHoursAsync()
{
DayOfWeek today = await Task.FromResult(DateTime.Now.DayOfWeek);
int leisureHours =
today is DayOfWeek.Saturday || today is DayOfWeek.Sunday
? 16 : 5;
return leisureHours;
}
// Example output:
// Today is Wednesday, May 24, 2017
//
Microsoft async 및 await를 사용한 비동기 프로그래밍 : [링크]
★★☆☆☆
반응형
'개발 > 기본) 기본기' 카테고리의 다른 글
기본기)c#) lock (0) | 2021.05.12 |
---|---|
기본기) 소프트웨어 관리 버전(Semantic Versioning) (0) | 2021.04.19 |
기본기)c#) 무시 항목 (1) | 2021.04.14 |
Tip) vi 명령어 정리 (0) | 2021.04.01 |
기본기) Seed Random 구현 방식(고정랜덤) (0) | 2021.03.08 |
댓글