- .NET에서 비동기 작업의 스레드 안전성 확보는
lock
키워드로만 해결되지 않음 🔒 SemaphoreSlim
클래스를 이용하여 스레드 동시 접근 제어 가능 👍SemaphoreSlim
생성자는 최대 동시 접근 수(1)와 초기 신호 수(1)로 설정하여 단일 스레드 접근 보장 🚦await
키워드와 함께SemaphoreSlim.WaitAsync()
사용하여 비동기적으로 락 획득 ⏳try...finally
블록으로SemaphoreSlim.Release()
메서드 호출하여 락 해제 보장 🔓WaitAsync()
메서드에 Timeout 설정으로 데드락 방지 🛡️