TextReader Read и ReadToEnd зависают без создания исключения

StackOverflow https://stackoverflow.com/questions/1883915

  •  19-09-2019
  •  | 
  •  

Вопрос

Есть ли способ узнать, что вызов TextReader.Вызов Read или TextReader.ReadToEnd зависнет без вызова exeption до того, как я выполню вызов?


try
{
 using (var filterReader = new EPocalipse.IFilter.FilterReader(tempFileName))
 {
  mediaContent = filterReader.ReadToEnd();
 }
}
catch (Exception e)
{
 Log.Error("DealerPortalIndex Error on file: " + tempFileName, e, this);
 mediaContent = string.Empty;
}

FilterReader.ReadToEnd() зависает и никогда не выдает исключение для определенного файла .xls (возможно, для большего количества файлов)

Я также пробовал использовать FilterReader.Read(char{}, int, int) для чтения блока и получаю ту же проблему.

Это было полезно?

Решение

(В вашем коде указано textreader, но в примере используется модуль EPocalips IFilter.)

Я думаю, что это ошибка в EPocalipse IFilter.Я не знаю, насколько обновлен их код, но я вспоминаю нечто похожее несколько лет назад, когда я работал с IFilters и использовал код EPocalipse.

Вы должны запустить его в отладчике и разбить код, чтобы увидеть, где в библиотеке EPocalipse он висит.Скорее всего, он застрял в петле.

[Редактировать] Я нашел свой старый обновленный код и разместил его на skydrive (Эпокалипсис.IFilter.zip).Посмотрите, решит ли это ваши проблемы.Он распознает бесконечные циклы синтаксического анализа IFilter и файлы Excel с заблокированными ячейками.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top