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