관리자 (클래스) 작업을위한 잠금 메커니즘으로 semaphoreSlim (1)을 사용하는 잠금 객체 래퍼 (클래스)를 만들었습니다.
내 관리자 클래스에는 새 래퍼 클래스를 생성 할 때 보내는 잠금이 포함되어 있습니다. 그런 다음이 래퍼 클래스 잠금에 대한 Await을 사용합니다. 실제로이 잠금은 생성시 보냈던 잠금을 기다리고 있습니다. Dispose (래퍼 클래스의 목적은 자동으로 잠금 및 해제하고, 생성시 잠금 및 처분시 해제)입니다. 내가 생성자 메서드에 비동기/await를 사용할 수 없기 때문에클래스 생성 후 비동기 작업 실행 C#
//_syncLock is a class that used as member lock to use in my operations as async lock.
using (OperationSyncLockWrapper syncLock = new OperationSyncLockWrapper(_syncLock))
{
await syncLock.Wait(); //I wish to avoid this line and run it automatically
await SomeAsyncOperation(parameter1);
}
:
나는 내가 만든 새로운 잠금 랩퍼이 패턴을 사용합니다. 방금 생성 한 새로운 객체를 기다리는 또 다른 방법이 있습니까? 클래스 생성 또는 바로 후에?
공장 방법은'_syncLock' 유형에 대한 확장 메서드 인 경우이 훨씬 청소기 될 것이다. –
@StephenCleary : 감사합니다. 귀하의 제안에 따라 업데이트 된 답변 – YK1
시간을 헌정 해 주셔서 감사합니다. 이것은 좋은 해결 방법입니다. – ilansch