C#에서 비동기 작업을 시작하는 방법은 여러 가지가 있습니다. 상황과 코드 스타일에 따라 적합한 방식을 선택하면 되는데요, 이 글에서는 대표적인 세 가지 방법을 예제 코드와 함께 소개합니다.
1. 델리게이트(Delegate)를 사용하여 작업 시작하기
가장 전통적인 방식으로, Task 객체를 생성할 때 델리게이트를 전달한 후 Start() 메서드를 호출하는 방법입니다.
Task t = new Task(delegate { PrintMessage(); });
t.Start();
이 방식은 작업 생성과 실행 시점을 명확하게 분리하고 싶을 때 유용합니다.
2. Task.Factory를 사용하여 작업 시작하기
Task.Factory.StartNew 메서드를 사용하면 작업을 생성과 동시에 바로 시작할 수 있습니다.
Task.Factory.StartNew(() => { Console.WriteLine("Welcome!"); });
이 방법은 별도로 Start()를 호출할 필요가 없어 코드가 간결해지는 장점이 있습니다.
3. 람다 식(Lambda Expression)을 사용하여 작업 시작하기
람다 식을 활용하면 더욱 직관적이고 간결하게 작업을 정의할 수 있습니다.
Task t = new Task(() => PrintMessage()); t.Start();
람다 식은 익명 메서드보다 가독성이 좋아 현대 C# 코드에서 가장 널리 사용되는 방식입니다.
참고: Task.Run 사용하기
.NET Framework 4.5 이상에서는 Task.Run을 사용하는 것이 권장됩니다. 내부적으로 Task.Factory.StartNew를 감싸며 더 단순하고 안전한 API를 제공합니다.
Task t = Task.Run(() => PrintMessage());
마무리
세 가지 방법 모두 결과적으로 동일하게 백그라운드에서 작업을 실행하지만, 최신 C# 개발 환경에서는 람다 식과 함께 Task.Run을 사용하는 것이 가장 깔끔하고 권장되는 패턴입니다. 프로젝트의 .NET 버전과 팀의 코딩 컨벤션에 맞게 선택하여 사용하세요.