/// <summary> /// Получает значение метрики для текущего файла. /// </summary> /// <param name="metric">Метрика текста.</param> /// <returns>Текствое представление метрики.</returns> private async Task <string> GetMetric(IMetric metric) { string result = String.Empty; long blockSize = 0x20000; long offset = 0, length = file.fileSize < blockSize ? file.fileSize : blockSize; var fileSize = file.fileSize; await Task.Run(() => { while ((offset + length) <= fileSize) { if (!isActive) { break; } metric.DoMetric(file.ReadTextBlock(offset, length)); offset += length; } }); result = metric.GetStringMetric(); return(result); }