반응형
코드의 성능과 응답성은 모든 애플리케이션에서 중요한 요소입니다. 특히 대규모 데이터를 처리하는 경우, 작업을 효율적으로 처리하는 방법이 필요합니다. 이번에는 C#에서 동기 처리와 비동기 처리를 사용하여 숫자 배열의 합을 계산하는 방법에 대해 알아보겠습니다.
동기적 처리 (Synchronous Processing)
먼저 동기적 처리를 살펴보겠습니다. 동기적 처리는 코드가 순차적으로 실행되며, 한 작업이 완료될 때까지 다음 작업을 기다립니다. 이를 통해 직관적인 코드를 작성할 수 있지만, 대규모 데이터를 처리할 때는 성능 저하가 발생할 수 있습니다.
using System;
class Program
{
static void Main(string[] args)
{
int[] numbers = { 1, 2, 3, 4, 5 };
int sum = CalculateSum(numbers);
Console.WriteLine("동기적 처리 결과: " + sum);
}
static int CalculateSum(int[] numbers)
{
int sum = 0;
foreach (int num in numbers)
{
sum += num;
}
return sum;
}
}
위 코드에서는 CalculateSum 함수를 사용하여 숫자 배열의 합을 계산합니다. 하지만 이 코드는 배열의 크기가 커지면 성능 문제가 발생할 수 있습니다.
비동기적 처리 (Asynchronous Processing)
비동기 처리는 대개 I/O 작업이나 장기 실행 작업에서 사용됩니다. 비동기 처리를 통해 여러 작업을 동시에 실행하고, 작업이 완료될 때까지 대기하지 않고 다른 작업을 수행할 수 있습니다.
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
int[] numbers = { 1, 2, 3, 4, 5 };
int sum = await CalculateSumAsync(numbers);
Console.WriteLine("비동기적 처리 결과: " + sum);
}
static async Task<int> CalculateSumAsync(int[] numbers)
{
int sum = 0;
foreach (int num in numbers)
{
// 장시간 소요되는 작업을 시뮬레이션하기 위해 잠시 대기합니다.
await Task.Delay(100);
sum += num;
}
return sum;
}
}
위 코드에서는 CalculateSumAsync 함수를 사용하여 비동기적으로 숫자 배열의 합을 계산합니다. async 및 await 키워드를 사용하여 비동기 작업을 처리하며, 작업이 완료될 때까지 대기합니다.
동기적 처리와 비동기적 처리는 각각의 상황에 따라 적합한 방법을 선택해야 합니다. 작업이 순차적으로 실행되는 경우 동기적 처리를 사용하고, 여러 작업을 동시에 처리해야 하는 경우 비동기적 처리를 사용합니다.
아래 마이크로소프트에서 제공한 샘플등을 이용하여 추가로 학습이 가능합니다.
반응형
'C#' 카테고리의 다른 글
C#에서 폴더를 포함한 압축파일의 압축해제 (0) | 2024.03.24 |
---|---|
복수 파일을 선택해서 압축파일을 만들기 (0) | 2024.03.23 |
C#으로 exe 파일간의 통신을 하는 방법 (0) | 2023.12.22 |
C#으로 실행중인 EDGE를 제어해보자 (0) | 2023.11.20 |
C#으로 REST API Patch하는 방법 (0) | 2023.05.21 |