2009-08-13 3 views
0

Exe, сделанный в vb6, будет зависать, если он будет постоянно работать на сервере? Этот exe имеет компонент winsock, который используется для получения данных от биометрических считывателей и сохраняется в sql server 2005. Фактически это показывает список в реальном времени для acceess, сделанного на биометрических считывающих устройствах, в этом exe мы использовали компонент datagrid, который отображает сохраненные записи в sql. Как обновить этот exe и данные.?EXE работает на сервере

ответ

0

Ну, если вы показываете графический интерфейс, я бы сказал, что технически вы не работаете на сервере. Но я до сих пор не вижу, как это сделает программу «зависанием».

Есть некоторые вещи, которые следует соблюдать, когда дело доходит до утечек памяти VB6. Одна вещь, которую вы обязательно должны сделать, это убедиться, что вы используете версию SP6 для среды исполнения VB6 и «расширенное время выполнения» (набор элементов управления, поставляемых с VB6). Другой, вероятно, должен пройти код и искать ссылки на круговые объекты, которые могут привести к накоплению потерянных объектов с течением времени. Были также некоторые неясные утечки памяти ADO, которые никогда не фиксировались до MDAC 2.7, но большинство из них не влияют на программу VB6.

Я подозреваю, что существуют другие причины зависаний, но большинство из них, вероятно, являются ошибочной логикой, такой как циклы, содержащие вызовы DoEvents. Использование Winsock для TCP без полного понимания может также создавать программы, которые, кажется, работают время от времени, а затем зависают, ожидая чего-то, что неверие происходит в другое время. Помните, что на каждом событии DataArrival вы можете рассчитывать не более одного байта данных - вам нужно написать свою собственную сборку потока и логику синтаксического анализа. Один вызов SendData у отправителя не равен одному вызову GetData в приемнике!

Sent:  abc 
Received: a 
      bc 

Если программа вызывает GetData, пока она не получит «abc», она никогда ее не увидит!

Смежные вопросы