/// <summary> /// Writes data from one stream to another using block-by-block algorithm. /// </summary> /// <param name="source"></param> /// <param name="destination"></param> public void Write(Stream source, Stream destination) { this.source = source; this.destination = destination; segmentId = 0; parallelProcessor.Process(() => DoBlockByBlockWriting(), configuration.ThreadsCount); while (!parallelProcessor.ProcessingFinished()) { ; } }