public void OpenParallel(ParallelReaderCreationDelegate createReader) { var reader = createReader(); Open(reader); reader.Dispose(); }
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()); }
public void OpenParallel(ParallelReaderCreationDelegate createReader) { hasData = true; ReadPixelDataParallel(createReader); }