이 글에서는 C#에서 이벤트 기반 비동기 패턴(EAP: Event-based Asynchronous Pattern)을 사용하는 방법을 간략하고 실용적으로 소개합니다. EAP는 비동기 작업을 쉽게 처리할 수 있도록 이벤트를 활용하는 패턴입니다.
1. EAP 개념 이해
이벤트 기반 비동기 패턴은 긴 작업을 비동기적으로 처리하면서 완료, 진행 상황, 취소 등의 이벤트를 통해 상태를 알립니다. 대표적으로 BackgroundWorker 클래스가 EAP를 구현한 예입니다.
2. BackgroundWorker 클래스 사용 예
BackgroundWorker는 작업 시작, 진행률 보고, 완료 이벤트를 제공합니다.
BackgroundWorker worker = new BackgroundWorker();
worker.WorkerReportsProgress = true;
worker.DoWork += (sender, e) =>
{
for (int i = 0; i <= 100; i += 10)
{
System.Threading.Thread.Sleep(100); // 작업 시뮬레이션
(sender as BackgroundWorker).ReportProgress(i);
}
};
worker.ProgressChanged += (sender, e) =>
{
Console.WriteLine($"진행률: {e.ProgressPercentage}%");
};
worker.RunWorkerCompleted += (sender, e) =>
{
if (e.Error != null)
Console.WriteLine($"에러 발생: {e.Error.Message}");
else
Console.WriteLine("작업 완료");
};
worker.RunWorkerAsync();
3. 요약
EAP는 이벤트를 통해 비동기 작업 상태를 알리고, BackgroundWorker 클래스로 쉽게 구현할 수 있습니다. 하지만 최신 C#에서는 async/await 기반 TAP(Task-based Asynchronous Pattern)을 권장합니다.
'C#' 카테고리의 다른 글
| C# 코드 분석 도구(Roslyn Analyzer) 제작하기 (0) | 2026.06.22 |
|---|---|
| C# Thread.Join과 Thread.Sleep 차이와 활용 (0) | 2026.06.19 |
| C# 대리자 체인 관리와 예외 처리 (0) | 2026.06.19 |
| C# 추상 팩토리(Abstract Factory) 패턴 구현 (0) | 2026.06.18 |
| C# Stopwatch와 PerformanceCounter 비교 분석 (0) | 2026.06.18 |