저는 C#에서 일반적인 Producer/Consumer 쌍 + 처리 대기열을 재미있게 구현하는 아이디어를 가지고 놀고 있습니다. 아이디어는 적절한 델리게이트로 구성되어 적절한 QueueProcessor
클래스 인스턴스로 전달하고 원하는 소비자 수를 알려주고 이동하는 적절한 IProducer 및 IConsumer 인터페이스 (기본 구현 제공)를 구현하는 객체를 만들 수 있다는 것입니다.일반 .Net Producer/Consumer
그러나 나는 스스로에게 말한다. "자아, 분명히 이것은 이전에 행해졌습니다."
그래서 사람이 알고 않는 좋은, C#에서 생산자/소비자 패턴의 일반적인 구현 (VB.Net도 괜찮습니다)? 내가 찾고 기본 요구 사항 :
- 를 사용하여 생성 및 소비 유형에 대한 제네릭
- 당신이 일을 얼마나 많은 소비자가 지정 허용 (입력, 작업 및 출력 형식, 또는 이들의 임의의 조합을 대기) 큐
- 는
- 이 자신의 생산자와 소비자
- 당신이 프로듀서로 어떤을 IEnumerable을 사용하도록 허용을 (구현할 수 있도록 당신이 링크 또는 파이프 라인에 체인 여러 큐 (다수의 소비자와 까다로운가, 내가 아는) 허용 좋아, 나 자신을 구현해야한다면 오래 걸릴거야.) 가능
- 위임 기반 (당신이)
을 단일 항목을 처리 할 기본적인 소비자 또는 생산자 작업 람다 구문을 사용할 수 있습니다 또는 존재하지 않는 경우는, 어떤 함정이 막았을하고 당신이 어떤 생각을해야합니까 그것을 구현하는 방법?
http://msdn.microsoft.com/en-us/library/dd267312.aspx를 보셨습니까? – porges
예, IProducerConsumerCollection 등이 있지만 처음 질문했을 때는 아직 존재하지 않았습니다. 4.0에서 지원에 대한 게시물을 작성하면 쉽게 upvote 얻을 것이다. –
아! 나는 어떻게 이런 일이 계속 일어나는지 모르겠다 ... 나는 항상 2 년 된 포스트에서 끝나고있다. P – porges