c#TPL TransfromBlock,用于构建集合

时间:2017-09-22 12:04:23

标签: c# task-parallel-library dataflow

我有一系列变换块,可以将数据传输到管道中。

 var getPdfFiles = new TransformManyBlock<string[], string>(files =>
            {
                Console.WriteLine("Finding pdf files.....");

                var pdfFilePaths = new ConcurrentQueue<string>();

                Parallel.ForEach(files, file =>
                {
                    pdfFilePaths.Enqueue(file);
                });

                return pdfFilePaths;
            });

            var generateBitmapFromPdfMemoryStream = new TransformBlock<string, Bitmap>(filePath =>
            {
                return _pdfConverterService.ConvertPdfToBitmapAsync(filePath);
            });

            var generateQRCodeResponseFromBitmap = new TransformBlock<Bitmap, QRCodeResponse>(bitmap =>
            {
                return _barcodeService.Read(bitmap);
            });

在我收到每个QRCodeResponse时,我需要将从QRCodeResponse中的数据派生的新项目添加到集合中。一个名为BatchItem的项目。

我不确定如何构建此系列。我还需要在完成后将这个集合进一步传递给管道。

0 个答案:

没有答案