...
// интерполяция строк тут удобнее
Console.WriteLine($"Сумма введённых чисел = '{arr.Sum()}'");
...
// предварительное объявление result не требуется
if (int.TryParse(s, out var result))
arr = arr.Concat(new int[] { result }).ToArray();if-ы, только без скобок (тут они реально не нужны, все действия однострочные). то итоговая конструкция будет гораздо компактнее и элегантнее, чем с использованием switch
По поводу того, что они плодятся и не закрываются - тоже прекрасно понимаю.
Не сразу весь пул потоков исчезает, а постепенно - значит после запроса, поток должен начать выполняться. Если бы он завис в середине метода, (1) то это показал бы стектрейс потока. А так складывается впечатление, что вместо того, чтобы вернуться в пул(2), он блокируется где-то на уровне системных библиотек (3). UI поток практически всё время свободен, так что они точно не пытаются в него попасть.
В любом случае, большое спасибо.для этого есть отметки. во избежание недопонимания - отметки это не тольк геймификация/мотивация. это конкретный функционал данного ресурса - индикатор ценности/значимости ответа, в том числе с обсуждением, для других посетителей, которые могут искать ответ на такйо же, или сходный вопрос.. (.. ну а лично я, просто удаляю свой ответ через тайм аут, если он не возымел таковой ценности ))
повисание потоков происходит в сторонней библиотекеу меня вызывает только один рефлекс - библиотеку(и) в студию!
3. BSOD не было, приложение повислоотлично!
и бесконечные циклы мониторингав качестве продолжения, это звучит просто как музыка - бесконечные циклы!!! (чего именно, это даже не важно)