Ислам Дорткулиев, Что значит не меняется? Где он должен поменяться? Вы вернули новый куда-то, и там будут знать, что получили новый. А все другие клиенты знать об этом не могут. Они будут слать старый, а вы должны это обрабатывать
Ислам Дорткулиев, Для примера вы решили, что пользователи со старым токеном должны залогиниться снова. Вы получаете запрос с токеном, достаете его ID проверяете это ID на наличие в созданной вами таблице в БД. Если он там есть, то токен признается не валидным.
А в чем смысл такого подхода? UI не может работать из другого потока и по этой причине вам и приходится делать вызов Dispatcher.Invoke.
Что мешает скрыть основную форму, а форму логина показать через ShowDialog()?
semki096, Если у пользователя открыта страница, то вы можете это сделать, а если он просто накидал товар в корзину и закрыл браузер, то все что касается localstorage уже будет недоступно.
Тут явно проблема не только в потоках, но и в работе с БД. Для примера: если множество вставок данных поместить в одну транзакцию, то процес пойдет в разы шустрее. Также помогает отключение индексов.
Знаю несколько крупных проектов, где переводят на .net core. Но переводят проекты сразу на микросервисную архитектуру, то есть существенно их перерабатывая.
Евгений, "Они отсылаются сами уже в классе потока сразу после записи в него? " класс TcpClient перенаправляет данные на WinAPI функции, а те в ядре операционной системы формируют пакеты данных и записывают их в память сетевой карты, которая на апаратном уровне передает их дальше. "А как это происходит в других классах stream" Другие классы наследуясь от абстракного класса stream реализуют свой функционал. Часто это просто прокси обертки над WinAPI функциями.
Асинхронный TcpListener НЕ требует для каждого соединения отдельного потока. И можно легко реализовать обработку множества подключений не использую дополнительные потоки.
Так вы посмотрите на чем тормоза возникают. Не должно быть проблем со столь малым числом соединений.
Еще уточните какая версия windows у вас, так как разные версии имеют ограничение на количество concurrent connections.
в ссылке есть ответ и на этот вопрос "на 64 разрядность платформе мне придется помещать 8 байтные значения"