private static byte[] CalculateMd5Hash(Stream stream, string filePath) { using (var md5 = MD5.Create()) { Program.SyncOutput.MessageCalculatingMD5Hash(filePath); ProgressStatus hashStatus = new ProgressStatus(0, stream.Length, new ComputeStats()); using (ProgressTracker progressTracker = new ProgressTracker(hashStatus, Program.SyncOutput.ProgressOperationStatus, Program.SyncOutput.ProgressOperationComplete)) using (var swrp = new StreamWithReadProgress(stream, hashStatus)) { Task <byte[]> task = Task <byte[]> .Factory.StartNew(() => { var bs = new BufferedStream(swrp); var md5Hash = md5.ComputeHash(bs); return(md5Hash); }); while (!task.Wait(TimeSpan.FromSeconds(1))) { progressTracker.Update(); } Program.SyncOutput.MessageMD5HashCalculationFinished(); return(task.Result); } } }
private static byte[] CalculateMd5Hash(Stream stream, string filePath) { using (var md5 = MD5.Create()) { using (var swrp = new StreamWithReadProgress(stream, TimeSpan.FromSeconds(1))) { var bs = new BufferedStream(swrp); Program.SyncOutput.MessageCalculatingMD5Hash(filePath); var md5Hash = md5.ComputeHash(bs); Program.SyncOutput.MessageMD5HashCalculationFinished(); return(md5Hash); } } }
private static byte[] CalculateMd5Hash(Stream stream, string filePath) { using(var md5 = MD5.Create()) { using (var swrp = new StreamWithReadProgress(stream, TimeSpan.FromSeconds(1))) { var bs = new BufferedStream(swrp); Program.SyncOutput.MessageCalculatingMD5Hash(filePath); var md5Hash = md5.ComputeHash(bs); Program.SyncOutput.MessageMD5HashCalculationFinished(); return md5Hash; } } }