Beispiel #1
0
        protected void ReadPixelData(IEXRReader reader)
        {
            var linesPerBlock  = EXRFile.GetScanLinesPerBlock(Header.Compression);
            var sortedChannels = (from c in Header.Channels orderby c.Name select c).ToList();

            //var actions = (from offset in Offsets select (Action)(() => {
            //}));
            //Parallel.Invoke(actions.ToArray());
            foreach (var offset in Offsets)
            {
                ReadPixelBlock(reader, offset, linesPerBlock, sortedChannels);
            }
        }
Beispiel #2
0
        private void ReadPixelDataParallel(ParallelReaderCreationDelegate createReader)
        {
            var linesPerBlock  = EXRFile.GetScanLinesPerBlock(Header.Compression);
            var sortedChannels = (from c in Header.Channels orderby c.Name select c).ToList();

            var actions = (from offset in Offsets select(Action)(() => {
                var reader = createReader();
                ReadPixelBlock(reader, offset, linesPerBlock, sortedChannels);
                reader.Dispose();
            }));

            Parallel.Invoke(actions.ToArray());
        }