Могу ли я отменить вызов Console.WriteLine() или Streamreader.ReadLineAsync(), и если да, то как мне это сделать?
Почему ReadLineAsync() не принимает CancellationToken? Я подумал, что было бы неплохо предоставить асинхронным методам необязательный параметр CancellationToken, даже если метод все еще завершается после отмены.
Код: Выделить всё
StreamReader reader = new StreamReader(dataStream);
while (!reader.EndOfStream)
{
if (ct.IsCancellationRequested){
ct.ThrowIfCancellationRequested();
break;
}
else
{
Console.WriteLine(await reader.ReadLineAsync());
}
}
Как указано в комментариях ниже, вызов Console.WriteLine() уже занимал несколько секунд из-за плохо отформатированной входной строки размером 40 000 символов в строке. Разбивка этого на части решает мои проблемы со временем ответа, но меня по-прежнему интересуют любые предложения или обходные пути, как отменить этот длительный оператор, если по какой-то причине предполагалось записать 40 000 символов в одну строку (например, при выгрузке всей строки в файл).
Подробнее здесь: https://stackoverflow.com/questions/286 ... ationtoken
Мобильная версия