реализовать многопоточность с помощью vb6 - PullRequest
2 голосов
/ 09 марта 2011

У меня есть задача по внедрению процесса автоматизации через несколько последовательных портов, подключенных к компьютеру. Как я могу реализовать многопоточность с vb6, чтобы самостоятельно выполнять некоторые задачи автоматизации через подключенные последовательные порты?

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 09 марта 2011

Продукт Desyware SpyWorks (теперь продается как UniversalCOM) содержит компонент (dwBackThread) для создания потоков в VB6.

Также проверьте «Еще лучше многопоточность с низкими издержками» ( part1 и part2 ), ThreadRunner (4 части, см. Другие публикации авторов) и MThreadVB для бесплатных решений с открытым исходным кодом.Я лично не пробовал это, но в целом все были хорошо приняты сообществом.

VB6, очевидно, не был разработан для потоков в традиционном смысле, но с использованием сторонних компонентов или некоторого творческого кодирования, это может быть достигнуто.

2 голосов
/ 09 марта 2011

Если вы избегаете распространенной ошибки написания вашей программы, как если бы вы использовали QBasic под MS-DOS, это обычно не проблема.

Элемент управления MSComm может использоваться асинхронно, вызывая события OnComm на входили ошибки.Делая это вместо записи состояния опроса Buzz-Loop (и еще хуже, вызывая DoEvents (), чтобы попытаться оставаться отзывчивым), можно устранить необходимость в явных рабочих потоках.сотни или даже тысячи одновременных соединений.Вы можете легко сделать то же самое для связи через последовательный порт, поскольку гораздо меньше «соединений» для обработки при гораздо более низких скоростях передачи данных.

Вам не нужен отдельный поток для каждой кнопки команды, а вточно так же вам не нужен поток для каждого элемента управления MSComm.

2 голосов
/ 09 марта 2011

Нет, vb6 не поддерживает многопоточность.Сорта работала в vb5, взламывая winapi, но была полностью сломана в vb6.Обработка ошибок прерывается, получение ошибки в одном потоке приводит к сбою всех из них.Перейдите на vb.net, чтобы получить его обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...