728x90
[C#] async await 기초 #1 : 동기 비동기 개념 이해하기
https://kangworld.tistory.com/24
[C#] async await 예제 코드 #2 (+ 동기 비동기의 개념)
https://kangworld.tistory.com/25
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//async는 await 키워드를 메서드 내에 사용할 수 있게 만들어준다를 기억
//async메서드는 반드시 void 또는 Task 또는 Task<T>를 반환해야 한다.
public static async void MyAsyncFunc()
{
for (int i = 0; i < 500; i++)
{
//1만개되는 데이터를 가져와
Console.WriteLine(i+"개 데이터 가져오는중");
await Task.Delay(1); //Task.Delay(5000)는 내부적으로 타이머를 사용하며 타이머는 스레드 풀의 큐에 들어가게 된다.
//이후 await에 의해 작업의 흐름이 MyAsyncFunc를 호출한 호출자 스레드에게 넘어간다.
}
Console.WriteLine("데이터 1만개 다 가져왔어");
}
private void button1_Click(object sender, EventArgs e)
{
Console.WriteLine("작업시작");
MyAsyncFunc();
Console.WriteLine("다른작업중..");
Console.Read();
}
}
출력>
작업시작
0개 데이터 가져오는중
다른작업중..
1개 데이터 가져오는중
2개 데이터 가져오는중
3개 데이터 가져오는중
...
498개 데이터 가져오는중
499개 데이터 가져오는중
데이터 1만개 다 가져왔어