Тут надо профилировать код и смотреть какая операция занимает больше всего времени. Хотя построчное чтение это достаточно затратное мероприятие, лучше наверное считывать блоками по несколько строк (8-16) и использовать векторизацию. Может есть смысл распараллелить программу и использовать многопоточную версию сортировки.
Я бы на .net создал службу, в ней бы сделал задачу, которая принимала данные с SerialPort и складывала их в потокобезопасную очередь, а в другом потоке выполнялось подключение (переподключение) к серверу, может происходил какой-то обмен командами и с очереди извлекались данные и передавались на сервер.
На я уже дано не программировал, но думаю все на C# гораздо быстрее сделать
Joysi, скорее всего просто складывает, но потом прогоняет через фильтр, чтобы убрать искажения. Хотя я уже подзабыл эту тематику, надо посмотреть книги по ЦОС. Вот дискуссия, которая будет вам интересна
Если WinForm, то подписаться на событие выбора ячейки и динамически определять содержимое и выводить его свойства, если WPF, то тут достаточно широкий простор
Может попробовать снести студию и поставить заново? Вот хорошая утилита https://github.com/Microsoft/VisualStudioUninstaller. На моей практике, зачастую было быстрее переустановить, чем долго ковыряться и искать причину
я бы еще добавил, что если сайт планируется развивать и аудитория будет расти, то лучше заранее заложить в железо возможность апгрейда или возможно стоит использовать облачные сервисы, ведь Asp.Net Core под них и заточен