У меня есть оконное приложение, разработанное на C # и C ++. Имеется версия для клиента и версия для сервера.Версия клиента, установленная в системе XP, подключенная к версии сервера, установленной в системе Windows 2003. Но пользовательский интерфейс в клиентской системе большую часть времени зависает.Я не знаю в чем причина

Таким образом, мое пространство папок является проблемой? всякий раз, когда зависание происходит в клиентской системе, я проверяю taskmanager, столбец памяти вкладки процесса, там я вижу, что мое приложение exe занимает наибольшее место

Я сделал проверку на вирусы, принудительно закрыл зависшее приложение из диспетчера задач. но снова всякий раз, когда я начинаю снова висеть большую часть времени

РЕДАКТИРОВАТЬ

Так вот мой вопрос любой manupulation на хост - файл будет делать какие - либо замедляются в клиенте В сервере я могу увидеть запись в файле хоста , как показано ниже EDIT

Нужно ли мне включать какие-либо службы из MMC, я имею в виду services.msc для правильного взаимодействия между клиентом и сервером, я запустил службу удаленной регистрации сейчас? Ожидаются некоторые обновления безопасности Windows, не создаст ли он проблемы, такие как мерцание?

1 ответ1

2

Я не использую C #, но в целом пользовательский интерфейс приложения может зависнуть, когда код обновления пользовательского интерфейса не разделен на потоки, которые отделены от потоков, используемых для сетевого ввода-вывода (или других задач, не связанных с пользовательским интерфейсом). В таком случае медленный ответ на сетевой вызов может привести к тому, что пользовательский интерфейс перестает отвечать на запросы, поскольку сетевой вызов блокирует поток пользовательского интерфейса. Это означает, что события пользовательского интерфейса (нажатия клавиш, щелчки мыши) заблокированы.

IO, такой как сетевой IO, часто можно записать в стиле блокировки или неблокирования. Использование неблокирующего стиля может смягчить последствия отсутствия кода обновления пользовательского интерфейса в его собственном потоке.

Таким образом, комбинация плохо написанного приложения и медленной сети или неправильно настроенного клиента (например, неверный адрес для сервера) может вызвать это.

Я бы сказал, что пользовательский интерфейс хорошо написанного приложения не должен зависать, если процессор не загружен на 100%.

Тем не менее, это предположение. Шансы на правильное предположение невелики. Для получения более точных ответов вам может потребоваться предоставить более подробную информацию о приложении (имя, автор программного обеспечения для розничной торговли) и о том, когда и как пользовательский интерфейс "зависает".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .