Ejemplo n.º 1
0
        /// <summary>
        /// <paramref name="source"/>를 모두 병렬로 실행하여, 결과를 <paramref name="target"/> 컬렉션에 요소로 추가한다.
        /// </summary>
        /// <typeparam name="TSource">요소의 수형</typeparam>
        /// <param name="source">병렬 시퀀스</param>
        /// <param name="target">공급자/소비자 패턴의 컬렉션</param>
        public static void OutputToProducerConsumerCollection <TSource>(this ParallelQuery <TSource> source,
                                                                        IProducerConsumerCollection <TSource> target)
        {
            source.ShouldNotBeNull("source");
            target.ShouldNotBeNull("target");

            // 병렬로 수행한 결과를 모두 컬렉션에 추가한다.
            source.ForAll(item => target.TryAdd(item));
        }