[c#] ConcurrentBag 클래스
ConcurrentBag이란 무엇인가?
ConcurrentBag
클래스는 여러 스레드에서 안전하게 아이템을 추가, 제거 및 반복할 수 있는 가변 크기의 컬렉션입니다. 이 클래스는 스레드 간에 자동으로 동기화됩니다. 따라서 별도의 동기화 메커니즘이 필요하지 않습니다.
ConcurrentBag 사용하기
ConcurrentBag
클래스는 다음과 같이 사용될 수 있습니다.
using System;
using System.Collections.Concurrent;
using System.Threading.Tasks;
class Program
{
static void Main()
{
ConcurrentBag<int> bag = new ConcurrentBag<int>();
Parallel.For(0, 10, i =>
{
bag.Add(i); // 여러 스레드에서 안전하게 아이템을 추가
});
foreach (var item in bag)
{
Console.WriteLine(item); // 여러 스레드에서 안전하게 반복
}
}
}
위의 예제에서 ConcurrentBag
를 사용하여 여러 스레드에서 안전하게 아이템을 추가하고 반복할 수 있습니다.
요약
ConcurrentBag
클래스를 사용하면 여러 스레드 간에 안전하게 컬렉션을 조작할 수 있습니다. 따라서 별도의 동기화나 잠금이 필요 없어 편리하게 다룰 수 있습니다.
더 자세한 정보는 Microsoft Docs를 참조하세요.