2013-01-21 5 views
0

다양한 출처에서 대기열에 데이터를 넣었습니다. 전송할 데이터가있을 때마다 데이터를 전송 한 다음 잠시 기다립니다. 예를 들어, 대기열이 비어있는 경우, 전송할 2 가지를 보내면 즉시 첫 번째 것을 전송 한 다음 다음 전송하기 전에 조금 기다립니다. 어떻게하면 좋을까요?대기열을 사용하여 데이터를 보내려면 어떻게합니까?

+0

foreach 루프와 타이머를 사용할 수 있습니다 (반드시 최상의 해결책은 아님) – RhysW

답변

2

소비가 지연되는 단일 소비자로 제작자/고객 대기열이 있어야하는 것처럼 들립니다. 물론 소비자는 생산자와는 다른 스레드를 사용하게됩니다.

.NET에서부터 BlockingCollection<T>은 생산자/소비자 대기열의 기본 구성 요소입니다. 당신은 또한 TPL DataFlow을보아야합니다 - 그것은 상자에서 이것을하는 간단한 방법이 있을지도 모릅니다. (DataFlow는 특별히 제작자/소비자 시나리오를 겨냥한 라이브러리입니다.)

+0

어떻게 사용합니까? – Cool12309

+0

@ Cool12309 : 어느 쪽이'BlockingCollection '? 이미 개요를 줬어. MSDN에 대한 약간의 연구와 결합하면이를 구현할 수 있습니다. 더 자세한 정보가 필요하면 * 구체적인 * 질문을해야합니다. –

+0

@Jon_Skeet 대기열에 무엇이 추가되었는지 어떻게 알 수 있습니까? – Cool12309

관련 문제