Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Эксперт по электронике
6827 / 3252 / 337
Регистрация: 28.10.2011
Сообщений: 12,709
Записей в блоге: 7

Вопросы многопоточности в VB6

09.09.2013, 10:55. Показов 2306. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
 Комментарий модератора 
Часть сообщений выделена из темы: Бесплатные редакторы vb6?


Сможете ли вы написать многопоточную прогу на VB 6? А ведь это элементарная вещь и без ее поддержки невозможно (или затруднительно) написать прогу, сложнее калькулятора.
Можно продолжить перечислять недостатки VB, но думаю что в этом смысла нет, вы и их и так знаете, да и тема для этого не подходящая.
По моему мнению, VB 6 не подходит для создания сложных прог.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.09.2013, 10:55
Ответы с готовыми решениями:

Есть ли у кого вопросы к MS экзаменам по VB6 (70-175 и 70-176)
Есть ли у кого информация о вопросах на microsoft экзаменах по VB6 или дайте ссылку где есть Спасибо

Windows 2000 Rus VB6, VB6 Resource Editor отсутствует
В Windows 2000 Rus + SP3 проинсталлировал Visual Studio 6 + MSDN Full (вся студия на 6 CD-R). В VB6 “Add-In Manager” всего три компонента,...

Контроль длины Label. А также VB6 Portable vs VB6 Installed.
Исходя из заголовка темы, вопроса 2: 1.) Как определить, что в Label уже не хватает места для Caption? Длина букв разная. Например,...

25
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.09.2013, 12:25
Цитата Сообщение от locm Посмотреть сообщение
Сможете ли вы написать многопоточную прогу на VB 6?
Можно
Цитата Сообщение от locm Посмотреть сообщение
А ведь это элементарная вещь и без ее поддержки невозможно (или затруднительно) написать прогу, сложнее калькулятора.
Пишут и игры и много другое, не надо делать таких громких заявлений.
Цитата Сообщение от locm Посмотреть сообщение
По моему мнению, VB 6 не подходит для создания сложных прог.
На VB6 можно написать практически любую прогу.
1
Эксперт по электронике
6827 / 3252 / 337
Регистрация: 28.10.2011
Сообщений: 12,709
Записей в блоге: 7
09.09.2013, 12:29  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Можно
Допустим. Приведите пример корректно работающей, многопоточной проги на VB.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.09.2013, 13:05
Цитата Сообщение от locm Посмотреть сообщение
Приведите пример корректно работающей, многопоточной проги на VB.
http://www.silicontaiga.ru/home.asp?artId=4762
0
Эксперт по электронике
6827 / 3252 / 337
Регистрация: 28.10.2011
Сообщений: 12,709
Записей в блоге: 7
09.09.2013, 13:19  [ТС]
Там описание WinAPI функций управления потоками. И что это дает?
Ознакомьтесь с этой темой. Многопоточность в VB6: возможно ли
В свое время я потратил много сил и времени, чтобы понять как реализовать многопоточность на VB6. Я прочитал много статей и перепробовал много примеров. В результате я пришел к выводу, что это ВОЗМОЖНО, но пользоваться этим практически НЕЛЬЗЯ из-за крайней неустойчивости работы. Поэтому когда вам предлагают вот такие красивые примеры - НЕ ОБОЛЬЩАЙТЕСЬ это всего-лишь ПРИМЕР. Когда вы попытаетесь использовать его в реальной задаче - у вас ничего не получится. Увы
Для те, кто все-таки хочет попытаться создать многопоточное приложение под VB6, могу открыть один ВАЖНЫЙ секрет, про который почему-то никто не знает, да и я наткнулся на него после долгих поисков - для того чтобы многопоточность работала более-менее стабильно, вы должны компилировать свою задачу ТОЛЬКО В P-КОДЕ !!! При этом как правило, при завершении работы из-под среды, она будет падать, и это нормально, потому что среда VB подставляет себе в качестве основного потока, в котором "живут" все остальные. Если вы готовы пройти через такие мучения - я готов вами восхищаться.
И эти посмотрите.
Ищу способ создать не глюченый дополнительный поток
Многопотоковое программирование на VB
Как создать поток, в котоком будет выполняться фоновая функция?
Многопотоковость в VB??

И после прочтения всего этого, жду от вас примера многопоточной, безглючной проги на VB, ведь вы утверждаете что это возможно.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.09.2013, 13:43
По ссылке, которую я дал, в конце есть исходник с программой.
Вложения
Тип файла: zip multithreading_in_vb.zip (15.0 Кб, 17 просмотров)
0
Эксперт по электронике
6827 / 3252 / 337
Регистрация: 28.10.2011
Сообщений: 12,709
Записей в блоге: 7
09.09.2013, 14:02  [ТС]
Что и требовалось доказать.
Миниатюры
Вопросы многопоточности в VB6  
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.09.2013, 14:05
На моем компьютере все нормально работает и из среды и при компиляции в P-Code. Никаких ошибок, все корректно завершается и не падает.
Миниатюры
Вопросы многопоточности в VB6  
0
Эксперт по электронике
6827 / 3252 / 337
Регистрация: 28.10.2011
Сообщений: 12,709
Записей в блоге: 7
09.09.2013, 14:10  [ТС]
Нажмите пару раз на StartThread (1 или 2, не имеет значения) и увидите эту ошибку.

И еще, попробуйте из разных потоков, работать со строками. Тоже будут падения проги.
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
09.09.2013, 14:13
The trick, всё работает
Миниатюры
Вопросы многопоточности в VB6  
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.09.2013, 14:30
Цитата Сообщение от locm Посмотреть сообщение
Нажмите пару раз на StartThread (1 или 2, не имеет значения) и увидите эту ошибку.
Конечно. Если одну и туже функцию для потока использовать то конечно.
Цитата Сообщение от locm Посмотреть сообщение
И еще, попробуйте из разных потоков, работать со строками. Тоже будут падения проги.
Можно работать если пользоваться строковыми функциями WinApi lstrcat и им подобными.
0
Эксперт по электронике
6827 / 3252 / 337
Регистрация: 28.10.2011
Сообщений: 12,709
Записей в блоге: 7
09.09.2013, 14:50  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Конечно. Если одну и туже функцию для потока использовать то конечно.
А не должно падать. Хоть 1000 потоков запустить - должно работать без глюков и крешей.
Вот поэтому нормальная работа с потоками в VB невозможна.
0
09.09.2013, 14:51

Не по теме:

Надеюсь не ошибаюсь, создаём класс модуль в котором необходимые функции написанные на WinApi
в теле программы:

AAA= new мой класс
BBB= new мой класс

После этого я смогу обращаться к созданному объекту BBB пока объект AAA занят и этот объект будет выполнятся уже в другом потоке независящем от объекта AAA.

0
09.09.2013, 15:13  [ТС]

Не по теме:

Цитата Сообщение от radlif Посмотреть сообщение
AAA= new мой класс
BBB= new мой класс
Скорее всего будут глюки.
Скорее всего придется создавать отдельный класс для каждого потока, но не факт что будет стабильно работать.

0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
09.09.2013, 15:26
Цитата Сообщение от locm Посмотреть сообщение
Скорее всего будут глюки.
Скорее всего придется создавать отдельный класс для каждого потока, но не факт что будет стабильно работать.
Небудет. Будут только в том случае если попытаешься результат работы обоих экземпляров классов писать в 1 и туже переменную или что то типо того.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.09.2013, 15:36
Цитата Сообщение от locm Посмотреть сообщение
А не должно падать. Хоть 1000 потоков запустить - должно работать без глюков и крешей.
Вот поэтому нормальная работа с потоками в VB невозможна.
В этом примере никакой синхронизации потоков нет, поэтому этот пример годится для создания функций работающих в фоне и работающей каждая в одном потоке, это тоже многопоточное приложение, т.к. работают две нити одновременно. При использовании методов синхронизации, можно запустить одну функцию в нескольких потоках.
0
Эксперт по электронике
6827 / 3252 / 337
Регистрация: 28.10.2011
Сообщений: 12,709
Записей в блоге: 7
09.09.2013, 15:38  [ТС]
Цитата Сообщение от radlif Посмотреть сообщение
Небудет.
Я бы не был бы в этом так уверен.
Дело вот в чем.
У экземпляров класса общий код, поддерживающий их работу и он не оптимизирован на многопоточность.
Прочитайте темы на которые я дал ссылки. Другие уже пробовали проделывать все это и выяснили что многопоточность в VB приводит к крайней нестабильности проги и она может упасть в любой момент.
Вам нужна стабильная прога, или такая, которая будет падать через определенный промежуток времени или выдавать неправильный результат?
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
09.09.2013, 15:46

Не по теме:

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



Добавлено через 6 минут

Не по теме:

Цитата Сообщение от locm Посмотреть сообщение
Я бы не был бы в этом так уверен.
Дело вот в чем.
У экземпляров класса общий код, поддерживающий их работу и он не оптимизирован на многопоточность.
Прочитайте темы на которые я дал ссылки. Другие уже пробовали проделывать все это и выяснили что многопоточность в VB приводит к крайней нестабильности проги и она может упасть в любой момент.
Вам нужна стабильная прога, или такая, которая будет падать через определенный промежуток времени или выдавать неправильный результат?
Когда создаёшь объект создаёшь дубликат класса в оперативной памяти который не как не зависит от
самого класса, так же хоть 1000 объектов этого класса создай их работа не как не будет зависить друг от друга и от класса родителя. Эт вроде как основы опп)

0
Эксперт по электронике
6827 / 3252 / 337
Регистрация: 28.10.2011
Сообщений: 12,709
Записей в блоге: 7
09.09.2013, 15:47  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
При использовании методов синхронизации, можно запустить одну функцию в нескольких потоках.
Вам придется разграничить мьютексами или критическими секциями чуть ли не все строки, особенно функции (методы, переменные, массивы и т. д.) VB.
Код превратится в кашу. Чтобы этого не было, поддержка многопоточности должна быть встроена в ЯП.
0
Эксперт по электронике
6827 / 3252 / 337
Регистрация: 28.10.2011
Сообщений: 12,709
Записей в блоге: 7
09.09.2013, 15:50  [ТС]
Цитата Сообщение от radlif Посмотреть сообщение
Когда создаёшь объект создаёшь дубликат класса в оперативной памяти
А вы не думали что существует код (генерируемый компилятором), который поддерживает работу классов? Конечно он скрыт от программиста и вы наверное про него и не слышали, но он есть. Вот, в нем нет поддержки многопоточности и велика вероятность падения проги или выдачи неправильного результата - глюков.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.09.2013, 15:50
Помогаю со студенческими работами здесь

Когда вопросы кончаются, сделать кнопку неактивной и вывести сообщение о том, что вопросы кончились
Кто знает ребят подскажите в чем проблема, есть метод обновляющий текст в TextView (всего 6 вопросов). Так вот когда вопросы кончаются...

по многопоточности
У меня есть анимация переходов... я её применил на боди и футер так сказать.. как сделать чтобы этот код выполнялся синхронно? public...

О многопоточности
Интересно, стало, а сколько всего потоков я могу открыть в своем проекте, существуют ли какие нибудь ограничения? и от чего зависит...

Основы многопоточности
Здравствуйте уважаемые знатоки! Пытаюсь изучить потоки по официальной документации , плохо идёт. Как правильно синхронизировать 2 потока...

Организация многопоточности
Всем привет! Работаю над приложением WinForms, которое использует API, дальнейшая десериализация и т.д. Имеется функция: public void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru