Беда в том, что нужно читать теорию. примеры
Не задан comparer и не переопределен equals(t) и equals (gethashcode)
Словарь сортирует по умолчанию,по умолчанию все ini объекты разные, если являются разными ссылками
1.Есть SPY++, можно отследить все сообщения
2.Возможно стоит перевести фокус на поле ввода или типа-того.
По 3 ссылкам не нашел работы с фокусом, может плохо смотрел.
Есть всего пара вариантов и их комбинация - постоянное соединение и непостоянное.
Если данных новых долго нет, можно рвать постоянное. Понятие долго может меняться.
Что именно это будет - сокет, вебсокет - вопрос реализации и дополнительной нагрузки.
Зачем веб сайт только не ясно.Кросс ориджин и броузер можно обращаться к апи сразу,если они на разных хостах.
Прочитайте про ооп с примерами кода.
На практике необходимость и профит очевидны.
Для динамических языков и слаьотипизипованных условия менее строгие, но преимущества те же.
Лень разжевывать, может другому не будет.
1. Поток не прерывается.
2 DrawCounter();
нужно скорее всего делать
DrawCounter().Wait()
или
await DrawCounter();
Иначе после первого await внутри DrawCounter
управление попадает сразу сюда while(true) ShowMessage(DateTime.Now);
3. Имеет значение контекст ,в гуи потоке по умолчанию по окончанию нового таска после await управление передается опять в поток гуи, здесь такого не будет.
Дальше рекомендую погуглить и почитать подробнее. Лень много печатать.