23년 7월 18일
async로 한정한 메서드/테스크/람다식은 await 연산자를 만나는 곳에서 호출자에게 제어를 돌려주며, await연산자가 없으면 동기로 실행함.
async로 한정하려면 메서드,테스크,람다식은 반환형이 없거나 Task 또는Task<result>
형이어야함
namespace asyncf
{
internal class Program
{
async static private void MyMethodAsync(int count)
{
Console.WriteLine("C");
Console.WriteLine("D");
await Task.Run(async () =>
{
for(int i = 0; i < count; i++)
{
Console.WriteLine($"{i}/{count}..");
await Task.Delay(1000);
}
});
Console.WriteLine("G");
Console.WriteLine("H");
}
static void Caller()
{
Console.WriteLine("A");
Console.WriteLine("B");
MyMethodAsync(3);
Thread.Sleep(1000);
Console.WriteLine("E");
Console.WriteLine("F");
}
static void Main(string[] args)
{
Caller();
Console.ReadLine();
}
}
}
뛰어난 글이네요, 감사합니다.