powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Многопоточность на VB6.
73 сообщений из 73, показаны все 3 страниц
Многопоточность на VB6.
    #38970458
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выкладываю DLL, которая позволяет работать с многопоточностью на VB6. Эта DLL написана мной на VB6 и имеет экспортируемую функцию vbCreateThread , являющуюся аналогом CreateThread . В IDE многопоточность не будет работать, но запуск все равно возможен просто в том же потоке. Эта DLL является копией этого стандартного модуля (просто кто не любит подключать модули и библиотеки типов могут на этапе разработки юзать эту DLL) поэтому они взаимозаменяемы. По той же ссылке есть примеры например получение списка простых чисел в другом потоке и т.п.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970481
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здорово, спасибо.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970533
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2,

круто! я весь твой блог прочитал от корки до корки, очень много новой и полезной информации
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970589
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Баян, велосипедист опоздал на 4 года.

Здесь автор сделал многопоточность, не рушащую IDE: http://bbs.vbstreets.ru/viewtopic.php?f=54&t=43507

А учитывая то, что многопоточность можно сделать вообще без костылей (в ActiveX exe), ценность библиотеки ТСа стремится к нулю.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970661
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,
Где эта многопоточность? Покажи мне пример использовани этого кирпича.
Я общался с автором и этот проект еще не готов, также этот кирпич не предполагает работу в IDE.
Многопоточность в ActiveX EXE не будет работать без админских прав потому что требует регистрации. С помощью Reg-free это также нельзя обеспечить, потому что это работает только для in-proc серверов.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970756
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2Я общался с автором и этот проект еще не готов, также этот кирпич не предполагает работу в IDE.
Что-то мне казалось, что доделал. И где-то он писал, почему ide падает и как это обходить.

ATM-TURBO 2Многопоточность в ActiveX EXE не будет работать без админских прав потому что требует регистрации.Админские права нужны лишь для регистрации.

Лет 15 назад подобные решения, будучи вброшенными в англоязычный интернет, могли бы придать VB6 жизни или вообще изменить его судьбу, но поезд ушел, и сейчас они интересны лишь ностальгирующим фанатам.
Фанатам слышать это неприятно, но это факт.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970775
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyЧто-то мне казалось, что доделал
Ну прежде чем писать что пост баян и я велосипедист сначала нужно убедится в этом. Такой многопоточности нигде нет, даже у Курлянда не инициализируется проект поэтому это не работает как следует. Можешь тут посмотреть если интересно (извиняюсь за свой английский) обсуждение многопоточности и примеры.
Например тут очень активно используют VB6, также там собирается команда для написания компилятора. Также там огромное количество новых библиотек и новых примеров, контролов и т.п.
AntonariyАдминские права нужны лишь для регистрации.
Без регистрации EXE не запустится. Это раз, во-вторых как ты собрался работать с разделяемыми данными? Покажи пример, и давай сравним как это реализовано у меня.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970822
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2 Ну прежде чем писать что пост баян и я велосипедист сначала нужно убедится в этом. Ну да, тут я дал маху.

ATM-TURBO 2также там собирается команда для написания компилятораКомпилятора vb6? Их бы энергию да в мирных целях :)
Зачем они это делают, они как-то объясняют?

ATM-TURBO 2 Без регистрации EXE не запустится.Можешь повторить это в третий раз еще более другими словами. Более известным этот факт мне не станет, а тебе возможно доставит удовольствие.

ATM-TURBO 2 Это раз, во-вторых как ты собрался работать с разделяемыми данными?
Покажи пример, и давай сравним как это реализовано у меня.Я не собираюсь заниматься этим мозгоклюйством на шестерке.
VB6 в коме, его IDE убога, а электрошок к нему пусть применяют те, кому это интересно. Мне нет, я здесь просто делюсь багажом уже ненужных мне знаний.

У меня у самого коллекция подобных кирпичей, которые я не использовал НИ РАЗУ, даже когда активно кодил на шестерке, потому что за рамками лабораторий они, как выяснилось, нафиг не нужны.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970831
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторVB6 в коме, его IDE убога, а электрошок к нему пусть применяют те

Уже через пару лет будет опенсоурсный, нативный VB7, инфа практически 100%
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970839
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКомпилятора vb6? Их бы энергию да в мирных целях :)
Зачем они это делают, они как-то объясняют?

Потому, что нужна среда разработки нативных приложений для x86/x64.
Сейчас в этом альтернативы C++ нет. Дельфи тоже практически помер.
По плюсы многим неудобны, хочется простоту VB6 и нативный код и x64!
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970842
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зачем они это делают, они как-то объясняют?
VB6 единственный в своем роде, он COM (ActiveX)-ориентированный и других таких нет и не будет. Они хотят воскресить VB6 также сделать его 64-разрядным. Добавить функционал рантайм и т.п. Один из разработчиков который занимается этим (написал кучу плагинов для VB к примеру vbRichClient) предлагал мне также вступить в команду разработчиков, я сказал что по возможности буду подключаться.
Можешь повторить это в третий раз еще более другими словами. Более известным этот факт мне не станет, а тебе возможно доставит удовольствие.
Просто это так звучало будто без регистрации все будет работать - "Админские права нужны лишь для регистрации.", т.е. для всего остального и для работы они не нужны? Поэтому я тебе расписал, может ты не знал этого. Откуда мне знать? Я не жадный на знания.
Я не собираюсь заниматься этим мозгоклюйством на шестерке.
VB6 в коме, его IDE убога, а электрошок к нему пусть применяют те, кому это интересно. Мне нет, я здесь просто делюсь багажом уже ненужных мне знаний.
Ну тогда не стоит писать:А учитывая то, что многопоточность можно сделать вообще без костылей (в ActiveX exe), ценность библиотеки ТСа стремится к нулю.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970887
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОни хотят воскресить VB6 также сделать его 64-разрядным.

Поддерживаю давно пора запилить такой проект. Я например до сих пор зарабатываю на VB6 деньги, клиенты платят за различные утилиты которые я для них разрабатываю. При этом они ничем не уступают приложениям на С++, а о .NET вообще говорить не стоит. Тормознуто и тяжеловесно. На vb6 сложнейшее MDI приложение запускается за полсекунды, аналог на C# и WinForms будет грузится секунд 10-15 и отвратительно тормозить во время работы. Все таки качественный нативный код ничто не может превзойти!
Для примера одна из моих коммерческих программ 2015 года на VB6.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970895
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2Зачем они это делают, они как-то объясняют?
VB6 единственный в своем роде, он COM (ActiveX)-ориентированный и других таких нет и не будет.Убедительно.

ATM-TURBO 2Они хотят воскресить VB6 также сделать его 64-разрядным. Добавить функционал рантайм и т.п. Они хотят переписать рантайм и компилятор? А насчет IDE какие у них мысли?
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970903
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltДля примера одна из моих коммерческих программ 2015 года на VB6. Симпатишно. :)
Верхнюю фигню (забыл как называется, из 2007 офиса расползлась) сам делал или готовая?
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970908
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2,

Кстати, а что не так с разделяемыми данными в ActiveX exe? Я писал многопоточную прогу этим способом, и не помню никаких проблем.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970910
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Риббон это называется. Очень удобная штука когда к ней привыкаешь. С ней можно даже на виндовых планшетах пальцами работать.
Я себе купил комплект компонентов от http://www.codejock.com, дороговато конечно, но если делать коммерческие проекты затраты быстро окупаются.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970936
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот еще пример, системная утилита для редактирования памяти RFID-тегов, я тут пытался реализовать черно-белый дизайн в стиле VS2012. А в центре многострадальный VB HEX-контрол, который на куче сайтов валяется в исходниках.
В общем как среда разработки VB6 еще пока живой, на нем можно делать современные приложения с удобным GUI.
Для меня важно, что в итоге получаются маленькие (по-сравнению с .NET) нативные приложения, с очень высокой скоростью работы и минимум потребляемой памяти.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38970947
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltА в центре многострадальный VB HEX-контрол, который на куче сайтов валяется в исходниках.Скролл-бары страшные, из стилистики выбиваются.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971044
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

Они хотят переписать рантайм и компилятор? А насчет IDE какие у них мысли?
Планируют полностью переписать все. Но пока работают над компилятором. Читай.
Кстати, а что не так с разделяемыми данными в ActiveX exe? Я писал многопоточную прогу этим способом, и не помню никаких проблем.
Покажи как ты это делал. К примеру общий массив данных для работы. Вот тебе пример отрисовки фрактала Julia в другом потоке, массив разделяется между двумя потоками и один туда спокойно пишет другой читает без проблем.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971074
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2 Планируют полностью переписать все.Передай им от меня ценный совет: пусть не делают IDE, лучше чем дотнетовкая все равно не сделают.

В дотнетовскую IDE можно встроить ЛЮБОЙ язык, хоть BrainFuck, с поддержкой подсветки, интеллисенсом и прочими плюшками, о которых шестерка может только мечтать. Это будет в разы быстрее, чем пилить с нуля свой интерфейс. А сам рантайм и компилятор можно будет распространять через NuGet. Установил студию, ввел команду, все необходимое подкачалось из репозитария и запилилось в IDE - красота! Такой проект я бы поддержал. Хотя бы морально :)

ATM-TURBO 2Покажи как ты это делал.Не могу показать, исходников не сохранилось, могу рассказать.

Я просто добавлял ссылку на запущенный экземпляр в ROT, делал GetObject из экземпляра-потока и юзал публичную объектную модель. Таким образом как бы выходит, что данные фактически не являются разделяемыми, в них пишет и читает единственный основной поток (который в ROT), а прочие потоки лишь запрашивают/отдают ему данные. Я не уверен, что все происходит буквально так, как я описал, но ошибок, связанных с одновременным доступом к разделяемым данным, я ни разу не выхватывал.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971077
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2Вот тебе пример отрисовки фрактала Julia в другом потокеНе пашет, ругается на TlsAlloc
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971081
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

Запускай EXE. Если хочешь сам скомпилировать то используй tlb по ссылке в первом посте. Также я немного ошибся в этом коде разделяется не массив а группа переменных. В ActiveX EXE такой функционал очень сложно сделать.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971089
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В архиве нет exe.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971091
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2В ActiveX EXE такой функционал очень сложно сделать.Хорошо, что я этого не знал :)
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971093
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вроде как раз Palette(99) и разделяется.

А это что за ребус?
Код: vbnet
1.
Process = Not Not Process
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971097
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В архиве нет exe.
Сорри. Приложил.
Хорошо, что я этого не знал.
В ActiveX EXE используется маршаллинг вызовов поэтому если один поток выполняет работу другой будет ждать. Это лишает смысл использования многопоточности. Поэтому я у тебя спросил покажи мне как у тебя взаимодействовали потоки.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971106
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А это что за ребус?
Это для того чтобы избежать оптимизации компилятора, т.к. в опциях у меня стояла полная оптимизация. VB6 не предполагает что кто-то внутри может обратится к переменной Process . Если этого не сделать то компилятор увидит что внутри цикла переменная не изменяется и остается False поэтому он ее заменит на константу (сделает по сути бесконечный цикл)
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971118
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вспомнил, я же делал пример своей многопоточности: 10555629
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971152
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По-моему как раз это костыль использовать формы и таймеры для асинхронного запуска процедуры, также в примере я не увидел разделяемых данных. Все глобальные данные разделены и нет общих данных. Для работы мне придется копировать данные туда-сюда, также в IDE это работает только в 1-м потоке, новые потоки не создаются. Учитывая затруднения при регистрации на новых системах не вижу никаких преимуществ.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971188
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2 По-моему как раз это костыль использовать формыЭто было для простоты сделано, чтобы не возиться с лишними объектами или апи.
ATM-TURBO 2и таймеры для асинхронного запуска процедурыНу да, без таймера туго.
ATM-TURBO 2 также в примере я не увидел разделяемых данныхПример для других целей делался, там даже нет обращения к основному потоку из вторичных.
ATM-TURBO 2 Все глобальные данные разделены и нет общих данных.Эээ... общие и разделяемые это одно и тоже или нет?
"Глобальные" предполагаются быть в основном потоке, их нужно запрашивать через объектную модель. Вместо Sleep втыкаешь Set mHost = GetObject(, "Cliserv.Host") и юзаешь интерфейс Host.
ATM-TURBO 2Для работы мне придется копировать данные туда-сюдаНе понял. Откуда куда?
ATM-TURBO 2также в IDE это работает только в 1-м потоке, новые потоки не создаютсяСдается мне, IDE не умеет цепляться к нескольким потокам принципиально, поэтому .
Если у clsTask не менять инстансинг, то это вообще в IDE работать не должно, он же NotCreatable, а создается через CreateObject (через New будет создан в основном потоке, в том числе в exe). Из-за CreateObject для IDE он представляется левым COM-классом, экземпляр которого создать невозможно.
Надо было для отладки разделить CreateObject и New через #If, не догадался.

А для отладки все равно удобней один поток. Когда дебажишь многопоточное приложение в дотнете, сильно раздражает, что один и тот же шаг нужно повторить во всех потоках, только после этого первый поток перейдет на следующий шаг.
ATM-TURBO 2Учитывая затруднения при регистрации на новых системах, не вижу никаких преимуществ.Это админские-то права - затруднения?

На самом деле есть еще одно затруднение, о котором ты не в курсе.
ROT тоже работает лишь под админом, но есть какой-то иной способ, который используется офисом. Офис в ROT не лезет, однако GetObject работает. Но, я не выяснял, что это за способ.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971198
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачал tlb, подключил.
В IDE многопоточность не будет работать, но запуск все равно возможен просто в том же потоке.
При запуске IDE вылетает в астрал. Не вижу никаких преимуществ (с) :)

Насчет одного потока - сдается мне, IDE тупо не умеет цепляться к нескольким потокам, потому принудительно крутит код в одном.
И потому еще раз: пусть эти товарищи-реаниматоры положат крупный прибор на собственную IDE.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971209
mihlon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyБаян, велосипедист опоздал на 4 года.

Здесь автор сделал многопоточность, не рушащую IDE: http://bbs.vbstreets.ru/viewtopic.php?f=54&t=43507

А учитывая то, что многопоточность можно сделать вообще без костылей (в ActiveX exe), ценность библиотеки ТСа стремится к нулю.

Так получается, что в обсуждаемой статье готовой вариант DLL / bas не был представлен?
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971217
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mihlonAntonariyБаян, велосипедист опоздал на 4 года.

Здесь автор сделал многопоточность, не рушащую IDE: http://bbs.vbstreets.ru/viewtopic.php?f=54&t=43507

А учитывая то, что многопоточность можно сделать вообще без костылей (в ActiveX exe), ценность библиотеки ТСа стремится к нулю.

Так получается, что в обсуждаемой статье готовой вариант DLL / bas не был представлен?Получается да, я выдал желаемое за действительное.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971231
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЭээ... общие и разделяемые это одно и тоже или нет?
Это одно и тоже. Данные общие но некоторые требуют атомарного доступа, а некоторые нет.
автор"Глобальные" предполагаются быть в основном потоке, их нужно запрашивать через объектную модель. Вместо Sleep втыкаешь Set mHost = GetObject(, "Cliserv.Host") и юзаешь интерфейс Host.
А ты знаешь что тут имеет место быть маршаллинг и если основной поток будет что-то делать и необрабатывать оконные сообщения, или будет делать запрос другому клиенту то запрашивающий поток будет простаивать и ждать. Также будут копироваться данные. Например если мне нужно иметь общий массив то я вынужден его буду копировать туда сюда юзая интерфейсные Property Get/Let.
авторЭто админские-то права - затруднения?
Да. Ты знаешь надежный способ обхода этих ограничений?
авторROT тоже работает лишь под админом, но есть какой-то иной способ, который используется офисом. Офис в ROT не лезет, однако GetObject работает. Но, я не выяснял, что это за способ.
Ты можешь придумать сам какой хочешь способ, просто ROT уже есть, но ты можешь сам создать такую таблицу вручную.
авторПри запуске IDE вылетает в астрал. Не вижу никаких преимуществ (с) :)
Эта версия старая (которая используется во фрактале), используй либо DLL что в первом посте, либо используй модуль на который я выложил ссылку в первом посте.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971241
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2А ты знаешь что тут имеет место быть маршаллинг и если основной поток будет что-то делать и необрабатывать оконные сообщенияА он не должен делать ничего такого, чтобы даже оконная процедура не обрабатывалась. Зависший интерфейс это ахтунг. В моем представлении поток должен быстро забрать, что ему нужно, выполнить свою работу, быстро вернуть результат и самоубиться.

ATM-TURBO 2Да. Ты знаешь надежный способ обхода этих ограничений?Да. Залогиниться под админом, установить, разлогиниться. Не вижу в этом проблемы.

ATM-TURBO 2Например если мне нужно иметь общий массив то я вынужден его буду копировать туда сюда юзая интерфейсные Property Get/Let.Или не копировать, модифицируя его через те же пропертя.
Или получить указатель и гадить прямо в память :) Но тут скорее всего я как раз и наткнусь на ошибки совместного доступа, придется это разруливать.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971281
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А он не должен делать ничего такого, чтобы даже оконная процедура не обрабатывалась.
Он может делать все что угодно,. он может обрабатывать в этот момент событие от другого потока или нескольких потоков.
Да. Залогиниться под админом, установить, разлогиниться. Не вижу в этом проблемы.
Ну залогинится под админом это и есть проблема. К тому же, как ты написал что для регистрации в ROT нужны права. Получается что права нужны всегда, а не только на момент установки.
Или не копировать, модифицируя его через те же пропертя.
Ага и для того чтобы скопировать один элемент массива нужно будет делать маршалинг через границу апартамента (тормозить поток, транспортировать параметры, ждать ответа). Это будет катастрофически медленно нежели использовать прямую запись как у меня.
Или получить указатель и гадить прямо в память :)
В любом случае это медленней непосредственного обращения.
Получаются что данные находятся в одном АП, лежат "бок о бок" а для доступа к ним нужно делать столько работы. Заметь, я не говорю лишней , потому что это не так просто VB6 стандартными средствами непозволит работать напрямую с общими данными и все обращения заранее синхронизированы. Получается как-бы аналог работы не в разных потоках, а в разных процессах.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971365
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2 Он может делать все что угодно,. он может обрабатывать в этот момент событие от другого потока или нескольких потоков.Он НЕ ДОЛЖЕН делать все, что угодно. Он должен НЕМЕДЛЕННО отвечать на действия пользователя, а потоки подождут, они нервничать не умеют.
А обработка событий другого потока должна занимать считанные миллисекунды. Если время обработки сравнимо со временем работы потока, а не меньше на несколько порядков, то это говно, а не архитектура, и потоки тут не нужны.

ATM-TURBO 2Ну залогинится под админом это и есть проблема.А мужики-то не знают и пишут инсталляторы под админов.

ATM-TURBO 2 К тому же, как ты написал что для регистрации в ROT нужны права.К тому же я написал, что есть и другие способы, админских прав не требующие.

ATM-TURBO 2Это будет катастрофически медленноБудет. Значит не надо так делать в случаях, критических с точки зрения производительности.

ATM-TURBO 2В любом случае это медленней непосредственного обращения.Ой вей, вот это новости.
Это и есть непосредственное обращение. А с помощью CopyMemory еще более непосредственое. Непосредственней только rtlMoveMemory.
x = ObjPtr(obj) - > Set obj = ObjFromPtr(x) и у тебя ссылка на тот же самый объект, что в основном потоке, хотя для объектов этот финт ушами не нужен. Примерно такая же фигня с массивом: VarPtr(arr(0)) - указатель на начало массива, обратную операцию не помню, но суть та же.

А в случае с VB насчет "непосредственного" нужно говорить с очень большой осторожностью - чуть более чем половина операций идет через функции рантайма. С переменными типа Variant - вообще все. А вот эта невнятная телега:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
Option Explicit

Private Declare Function ArrPtr& Lib "msvbvm60.dll" Alias "VarPtr" (ptr() As Any)
Private Declare Sub RtlMoveMemory Lib "kernel32" (dst As Any, src As Any, ByVal nBytes&)

Private Header1(5) As Long
Private Header2(5) As Long
Private SafeArray1() As Long
Private SafeArray2() As Long


Private Sub Class_Initialize()
    ' Set up our template for looking at strings
    Header1(0) = 1              ' Number of dimensions
    Header1(1) = 4              ' Bytes per element (long = 4)
    Header1(4) = &H7FFFFFFF     ' Array size
  
    ' Force SafeArray1 to use Header1 as its own header
    RtlMoveMemory ByVal ArrPtr(SafeArray1), VarPtr(Header1(0)), 4
    
    ' Set up our template for look at search text
    Header2(0) = 1                 ' Number of dimensions
    Header2(1) = 4                 ' Bytes per element (long = 4)
    Header2(4) = &H7FFFFFFF        ' Array size
  
    ' Force SafeArray1 to use Header1 as its own header
    RtlMoveMemory ByVal ArrPtr(SafeArray2), VarPtr(Header2(0)), 4
End Sub


Private Sub Class_Terminate()
    ' Make SafeArray1 once again use its own header
    ' If this code doesn't run the IDE will crash
    RtlMoveMemory ByVal ArrPtr(SafeArray1), 0&, 4
    RtlMoveMemory ByVal ArrPtr(SafeArray2), 0&, 4
End Sub


Friend Function IsSameText03(String1 As String, String2 As String, Compare As VbCompareMethod) As Boolean
' By Chris Lucas, cdl1051@earthlink.net, 20011204
    Dim i&, SLen&, tmp1&, tmp2&, tmp3&, tmp4&, alt&
    
    SLen = LenB(String1)
    If SLen <> LenB(String2) Then Exit Function
    
    Header1(3) = StrPtr(String1): Header2(3) = StrPtr(String2)
    
    If Compare = vbTextCompare Then
        For i = 0 To SLen \ 4 - 1
            tmp1 = SafeArray1(i)
            tmp2 = (tmp1 And &HFFFF&)
            tmp3 = SafeArray2(i)
            tmp4 = (tmp3 And &HFFFF&)
            
            
            Select Case tmp2
                Case 97& To 122&: alt = tmp2 - 32
                Case 65& To 90&: alt = tmp2 + 32
                Case 49&: alt = 185
                Case 50&: alt = 178
                Case 51&: alt = 179
                Case 138&: alt = 154
                Case 140&: alt = 156
                Case 142&: alt = 158
                Case 154&: alt = 138
                Case 156&: alt = 140
                Case 158&: alt = 142
                Case 159&: alt = 255
                Case 178&: alt = 50
                Case 179&: alt = 51
                Case 185&: alt = 49
                Case 192& To 214&: alt = tmp2 + 32
                Case 216& To 222&: alt = tmp2 + 32
                Case 224& To 246&: alt = tmp2 - 32
                Case 248& To 254&: alt = tmp2 - 32
                Case 255&: alt = 376
                Case 338&: alt = 339
                Case 339&: alt = 338
                Case 352&: alt = 353
                Case 353&: alt = 352
                Case 376&: alt = 255
                Case 381&: alt = 382
                Case 382&: alt = 381
            End Select
            
            
            If alt <> tmp4 Then
                If tmp2 <> tmp4 Then Exit Function
            End If
            tmp2 = (tmp1 And &HFFFF0000)
            tmp4 = (tmp3 And &HFFFF0000)
            Select Case tmp2
                Case &H610000 To &H7A0000: alt = tmp2 - &H200000
                Case &H410000 To &H5A0000: alt = tmp2 + &H200000
                Case &H310000: alt = &HB90000
                Case &H320000: alt = &HB20000
                Case &H330000: alt = &HB30000
                Case &H8A0000: alt = &H9A0000
                Case &H8C0000: alt = &H9C0000
                Case &H8E0000: alt = &H9E0000
                Case &H9B0000: alt = &H8A0000
                Case &H9C0000: alt = &H8C0000
                Case &H9E0000: alt = &H8E0000
                Case &H9F0000: alt = &HFF0000
                Case &HB20000: alt = &H320000
                Case &HB30000: alt = &H970000
                Case &HB90000: alt = &H310000
                Case &HC00000 To &HD60000: alt = tmp2 + &H200000
                Case &HD80000 To &HDE0000: alt = tmp2 + &H200000
                Case &HE00000 To &HF60000: alt = tmp2 - &H200000
                Case &HF80000 To &HFE0000: alt = tmp2 - &H200000
                Case &HFF0000: alt = &H1780000
                Case &H1520000: alt = &H1530000
                Case &H1530000: alt = &H1520000
                Case &H1600000: alt = &H1610000
                Case &H1610000: alt = &H1600000
                Case &H1780000: alt = &HFF0000
                Case &H17D0000: alt = &H17E0000
                Case &H17E0000: alt = &H17D0000
            End Select
            If alt <> tmp4 Then
                If tmp2 <> tmp4 Then Exit Function
            End If
        Next i
        
        If (LenB(String1) \ 2 And 1) Then
            tmp2 = (SafeArray1(i) And &HFFFF&)
            tmp4 = (SafeArray2(i) And &HFFFF&)
            
            Select Case tmp2
                Case 97& To 122&: alt = tmp2 - 32
                Case 65& To 90&: alt = tmp2 + 32
                Case 49&: alt = 185
                Case 50&: alt = 178
                Case 51&: alt = 179
                Case 138&: alt = 154
                Case 140&: alt = 156
                Case 142&: alt = 158
                Case 154&: alt = 138
                Case 156&: alt = 140
                Case 158&: alt = 142
                Case 159&: alt = 255
                Case 178&: alt = 50
                Case 179&: alt = 51
                Case 185&: alt = 49
                Case 192& To 214&: alt = tmp2 + 32
                Case 216& To 222&: alt = tmp2 + 32
                Case 224& To 246&: alt = tmp2 - 32
                Case 248& To 254&: alt = tmp2 - 32
                Case 255&: alt = 376
                Case 338&: alt = 339
                Case 339&: alt = 338
                Case 352&: alt = 353
                Case 353&: alt = 352
                Case 376&: alt = 255
                Case 381&: alt = 382
                Case 382&: alt = 381
            End Select
            
            If tmp2 <> tmp4 Then
                If alt <> tmp4 Then Exit Function
            End If
        End If
    
        IsSameText03 = True
    Else
        For i = 0 To SLen \ 4 - 1
            If SafeArray1(i) <> SafeArray2(i) Then Exit Function
        Next i
    
        If (LenB(String1) \ 2 And 1) Then
            If (SafeArray1(i) And &HFFFF&) <> (SafeArray2(i) And &HFFFF&) Then Exit Function
        End If

        IsSameText03 = True
    End If
End Function


Friend Function IsSameString02(String1 As String, String2 As String) As Boolean
' By Chris Lucas, cdl1051@earthlink.net, 20020607
    
    Dim i&, Len1&, Len2&, tmp&
    
    ' Grab the string lengths
    Len1 = LenB(String1) \ 2: Len2 = LenB(String2) \ 2
    
    ' Make an informed decision as to whether we should continue
    If Len1 <> Len2 Then GoTo BailOut
    
    ' Compare the strings
    Header1(3) = StrPtr(String1): Header2(3) = StrPtr(String2)
    tmp = Len1 \ 2
    ' The first two characters come cheap
    If SafeArray1(i) <> SafeArray2(i) Then GoTo BailOut Else i = i + 1
   
DoLoop:
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If SafeArray1(i) <> SafeArray2(i) Then GoTo NotEqual Else i = i + 1
        If i <= tmp Then GoTo DoLoop
    
NotEqual:
    ' some characters don't match, but we need to check to
    ' see if it happened after the end of the string, a
    ' nasty side-effect of cascading ifs
    If i > tmp Then IsSameString02 = True
    
BailOut:
    ' Lengths don't match, let's do absolutely nothing
End Function

быстрее StrComp от десятков до тысяч(!) раз в зависимости от параметров: http://xbeat.net/vbspeed/c_IsSameText.htm
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971366
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поднял тут давно забытое обсуждение этого способа, там более детально расписывали минусы. Видимо, по большому счету ты таки прав, твой кирпич лучше.
Был бы он у меня, когда была нужна многопоточность, рекламировал бы его.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38971402
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторК тому же я написал, что есть и другие способы, админских прав не требующие.
Ну так и не привел реализацию. Возможно что реализация этого метода займет дополнительно несколько кСтрочек кода.
авторА мужики-то не знают и пишут инсталляторы под админов.
Ну да, получается что для простой утилитки, которая к примеру работает с интернетом нужно делать целый инсталлятор. На многих системах получить админские права достаточно проблематично поэтому сейчас очень актуальны всякие обходы UAC и т.п.
авторБудет. Значит не надо так делать в случаях, критических с точки зрения производительности.
А как надо тогда?
авторЭто и есть непосредственное обращение. А с помощью CopyMemory еще более непосредственое. Непосредственней только rtlMoveMemory.
x = ObjPtr(obj) - > Set obj = ObjFromPtr(x) и у тебя ссылка на тот же самый объект, что в основном потоке, хотя для объектов этот финт ушами не нужен. Примерно такая же фигня с массивом: VarPtr(arr(0)) - указатель на начало массива, обратную операцию не помню, но суть та же.
Во первых ты не можешь использовать ссылку на объект в другом потоке без маршаллинга, потому что это может привести к краху.
Во вторых если данные расположены в произвольном порядке, то тебе для работы с ними придется попотеть. Но это все равно в разы мендленней чем непосредственно написать A = B, да, да и не CopyMemory, ни GetMem не ускорят процесс. Ты конечно можешь замапить массив, но это уже усложнение программы и также медленней непосредственного обращения. Если твой код использует рантайм и код в другом потоке использует рантайм то ты не получишь замедления за счет доступа, так что рантайм тут не причем. КОгда я пишу что-то типа: pubVar = locVar + locVar2 то тут рантайм вообще не юзается. Также если захотеть то можно вообще отказаться от рантайма и не использовать его вплоть до исключения его из импорта.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38977077
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyVB6 в коме, его IDE убога, а электрошок к нему пусть применяют те, кому это интересно. Мне нет, я здесь просто делюсь багажом уже ненужных мне знаний.Вчера был в Библио-Глобусе. Не видном месте стояла книга "Visual Basic 6", переизданная в 2014 (!) году. На верхней полке тоже что-то стояло по VB6, я поленился ради них тащить стремянку....
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38977184
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProAntonariyVB6 в коме, его IDE убога, а электрошок к нему пусть применяют те, кому это интересно. Мне нет, я здесь просто делюсь багажом уже ненужных мне знаний.Вчера был в Библио-Глобусе. Не видном месте стояла книга "Visual Basic 6", переизданная в 2014 (!) году. На верхней полке тоже что-то стояло по VB6, я поленился ради них тащить стремянку....
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38977374
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вероятно, я скажу банальность, но если книгу кто-то переиздает, значит книгу кто-то покупает....
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38977388
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да VB6 такой же яп как и другие, просто не поддерживается больше мелкософтом. На VB6 можно написать любую программу (ну кроме 64-битных, но если применить смекалку то думаю можно и такую написать). В сети есть куча библиотек для него и аддин-ов. Сейчас я разрабатываю адд-ин для расширенной компиляции. Я думаю если получится то можно вообще много каких вещей делать что раньше было невозможно, к примеру инлайн асм-вставки, замена рантаймовских функций своими, создание секций в файле и многое другое.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38977402
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProВчера был в Библио-Глобусе. Не видном месте стояла книга "Visual Basic 6", переизданная в 2014 (!) году. На верхней полке тоже что-то стояло по VB6, я поленился ради них тащить стремянку....

Переиздание старой скорее всего. К сожалению, что-то типа пикрелейтеда не переиздадут. А ведь книга офигенная по-своей глубине, именно по-внтуренностям VB6. Недавно подарил ее одному программеру.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38977406
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltНедавно подарил ее одному программеру.Ну вот, а я ведь так просил!
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38977409
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProEoltНедавно подарил ее одному программеру.Ну вот, а я ведь так просил!

Ну так я тему создавал чтобы отдать книжки, никто с этого форума не пожелал встретиться и забрать их.
Пришлось отдать другому человеку.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38977412
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2Сейчас я разрабатываю адд-ин для расширенной компиляции. Я думаю если получится то можно вообще много каких вещей делать что раньше было невозможно, к примеру инлайн асм-вставки, замена рантаймовских функций своими, создание секций в файле и многое другое.

Я вот жду твой аддон, круто если можно будет добавлять в VB-проект внешние .lib и чтобы вызывать функции можно было не через секцию эскорта экзешника.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38985823
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2...
VB6 единственный в своем роде, он COM (ActiveX)-ориентированный и других таких нет и не будет...

ну если не будет так об чем речь?

там еще кто то про нативность кричал а мужики в курсе что дот нет натив появился?
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38985893
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капитанская дочкатам еще кто то про нативность кричал а мужики в курсе что дот нет натив появился?

если ты про это , то не появился
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38986002
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eoltкапитанская дочкатам еще кто то про нативность кричал а мужики в курсе что дот нет натив появился?

если ты про это , то не появился

ага с той лишь разницей что появился
а когда говоришь нативный новый вб вылупится? ну ну
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38986146
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капитанская дочкаага с той лишь разницей что появился
а когда говоришь нативный новый вб вылупится? ну ну

Нет, только для приложений Windows Store, деплоишь их в свой аккаунт в магазине, а там они уже компилируются и пользователь получает нативные бинарники и только x64. Ни о каком создании нативных виндовых приложений и речи нет.
Короче нафиг такую "нативность".
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38986733
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eoltкапитанская дочкаага с той лишь разницей что появился
а когда говоришь нативный новый вб вылупится? ну ну

Нет, только для приложений Windows Store, деплоишь их в свой аккаунт в магазине, а там они уже компилируются и пользователь получает нативные бинарники и только x64. Ни о каком создании нативных виндовых приложений и речи нет.
Короче нафиг такую "нативность".

да ну а студия 15 не компилит сразу магазинные приложения? а мелкомягкие что на бильд 2015 сказли про натив компилирование? на край ngen.exe чем не нативный компилятор? а всегда ли натив лучше джит?
это очередной срач от любителей антиквара и не более того
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38986848
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторда ну а студия 15 не компилит сразу магазинные приложения? а мелкомягкие что на бильд 2015 сказли про натив компилирование?

Пиши по-русски правильно и без ошибок, тогда окружающие поймут, какую мысль ты хотел выразить.

авторна край ngen.exe чем не нативный компилятор?

Тем что это надстройка над JIT, которая просто сохраняет машинные образы вместе со сборкой. Работает не всегда и не везде.
.NET игнорирует образ, если находит какое-то не соответствие между MSIL сборкой и ее образом созданным ngen`ом.

автора всегда ли натив лучше джит?

- Натив всегда быстрее. JIT практически не оптимизирует машинный код, он не для этого создавался.
- Нативу не нужно 50 мегабайт рантайма.
- Нативный код не декомпилируется за 10 секунд рефлектором.
- У нативного кода нет идиотского, неотключаемого сборщика мусора. Который по-идее должен нажимать за вами кнопку унитаза, после посещения туалета. Но я достаточно умен, чтобы самостоятельно смывать унитаз, и хочу сам выбирать момент когда это сделать.
А MS почему-то думает, что кодер это обезьяна, за которую надо выполнять простейшие действия, платя за это потерей производительности.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38986946
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eoltавторда ну а студия 15 не компилит сразу магазинные приложения? а мелкомягкие что на бильд 2015 сказли про натив компилирование?

Пиши по-русски правильно и без ошибок, тогда окружающие поймут, какую мысль ты хотел выразить.

авторна край ngen.exe чем не нативный компилятор?

Тем что это надстройка над JIT, которая просто сохраняет машинные образы вместе со сборкой. Работает не всегда и не везде.
.NET игнорирует образ, если находит какое-то не соответствие между MSIL сборкой и ее образом созданным ngen`ом.

автора всегда ли натив лучше джит?

- Натив всегда быстрее. JIT практически не оптимизирует машинный код, он не для этого создавался.
- Нативу не нужно 50 мегабайт рантайма.
- Нативный код не декомпилируется за 10 секунд рефлектором.
- У нативного кода нет идиотского, неотключаемого сборщика мусора. Который по-идее должен нажимать за вами кнопку унитаза, после посещения туалета. Но я достаточно умен, чтобы самостоятельно смывать унитаз, и хочу сам выбирать момент когда это сделать.
А MS почему-то думает, что кодер это обезьяна, за которую надо выполнять простейшие действия, платя за это потерей производительности.

не говори мне что делать и я не скажу куда тебе пойти. русский это 5 или 6 язык что я изучал и я считаю верхом мастерства освоить сленг. ежели ты не слышал о VS2015RC и Microsoft Build Events то уж не моя беда

что до надстройки то криворукость не порок

что до разницы в производительности то в большинстве случаев это микросекунды при скорости написания аналогичной проги в разы быстрее и стабильнее

что твоих пунктов ты часом не апельсины с бананами сравниваешь? все хорошо по своему нативность ради нативности глупо и смешно
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38987170
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капитанская дочкане говори мне что делать и я не скажу куда тебе пойти. русский это 5 или 6 язык что я изучал и я считаю верхом мастерства освоить сленг. ежели ты не слышал о VS2015RC и Microsoft Build Events то уж не моя беда

что до надстройки то криворукость не порок

что до разницы в производительности то в большинстве случаев это микросекунды при скорости написания аналогичной проги в разы быстрее и стабильнее

что твоих пунктов ты часом не апельсины с бананами сравниваешь? все хорошо по своему нативность ради нативности глупо и смешно

Бессмысленный флуд. Просьба не засоряй тему.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38987270
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капитанская дочка русский это 5 или 6 язык что я изучала на руках у тебя в сумме около десяти пальцев?

это не те показания, где есть простор для путаницы.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38987397
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eoltкапитанская дочкане говори мне что делать и я не скажу куда тебе пойти. русский это 5 или 6 язык что я изучал и я считаю верхом мастерства освоить сленг. ежели ты не слышал о VS2015RC и Microsoft Build Events то уж не моя беда

что до надстройки то криворукость не порок

что до разницы в производительности то в большинстве случаев это микросекунды при скорости написания аналогичной проги в разы быстрее и стабильнее

что твоих пунктов ты часом не апельсины с бананами сравниваешь? все хорошо по своему нативность ради нативности глупо и смешно

Бессмысленный флуд. Просьба не засоряй тему.

ладно я тебе по-детски по-русски расскажу

- я не люблю когда мне указвыают что делать и как да ты и сам не любишь не так ли? так что не надо мне указвыать пиши по-русски я пишу как могу. и не надо мне писать не засоряй тему не нравится пиши господину модератору. ты же небось и сам понимаешь что критика и приказы исполняются с точностью донаоборот
- .net native в VisualStudio 2015RC компиллирует те самые Windows Store Apps. я никуда ничего не скидывал. скомпиллировал и проверил и все работало
- ngen.exe работает так как от него ожидается. у меня проблем не было. ты хорошо ознакомился с мануалом?
- да в подавляющем большинстве случаев нативный код быстрее и ест меньше ресурсов (обрати внимание так не всегда). за это ты платишь временем на разработку и возможностью софта работать на разном железе. с другой стороны выигрышь в производительности едва заметен. ну разве что ты пишешь супер трейдинг систему где скорость это все. на моей практике в 98% разница не видна конечному пользователю. по сему - нативность ради нативности? потом я не понимаю если уж тебе важно чтобы все работало быстро может бытьь с++ будешь еще лучше?
- по большому счету сравнивать vb6 и .net это как сравнивать яблоки и апельсины. ты скажешь что я первый .net упомянул. да так тебе же нативность важна или какая то особенная?
- кажется на Build2015 было сказано что Microsoft будет работать в направлении MSIL -> Native. еще бы им Java 8 догонять надо
- хочешь упираться рогом, плыть против течения и писать на vb6 пиши полиция к тебе в дом не придет и комп за это не отберет.
- преджде чем ты будешь писать ответ подумай какие бы аргументы ты не привел и как сильно бы не заплевал экран какждый из нас останется при своем мнении
- а вообще я видел и раньше любовь и страсть до vb6 но там было про старого пса что не научить новым трюкам
and that being said.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38987398
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyкапитанская дочка русский это 5 или 6 язык что я изучала на руках у тебя в сумме около десяти пальцев?

это не те показания, где есть простор для путаницы.

а ты не завидуй)))
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38987460
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капитанская дочкаAntonariyпропущено...
а на руках у тебя в сумме около десяти пальцев?

это не те показания, где есть простор для путаницы.

а ты не завидуй)))чему? Как ты херово выучил язык? Что ты врать так и не научился? Шесть или семь, ага.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38987514
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А тем временем автор топика пропал, и про его аддин для подключения .LIB ничего не слышно...
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38987540
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я тут, аддин пилю потихоньку.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38989571
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyкапитанская дочкапропущено...


а ты не завидуй)))чему? Как ты херово выучил язык? Что ты врать так и не научился? Шесть или семь, ага.

я смотрю тут ребята сурьезные собрались деваться некуда с волками жить... поймал ты меня я кроме русского других языков и не знаю да и тот плохо только писать умею а читать пока только учусь
Модератор: далее только по теме
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38994281
Mina Anna Mazzini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, джентльмены.

Приветствую, ATM-TURBO 2

Спасибо огромное за TrickMultithreading.dll

Заменив ей стандартную M$ CreateThread Lib "kernel32" я избавился от падений IDE при закрытии формы. Отладку приходится вести через логи, но и то вперед.

Скилл у меня чуть ниже плинтуса, поэтому возникли вопросы... Вынес я их в отдельную тему - чиста практика, чиста для молодых :) - по применению твоей разработки. Если что - модераторы меня поправят. ATM-TURBO 2, взгляни пожалуйста: 17823102

А то тут идет академическое обсуждение, в котором мои дурацкие вопросы будут явно неуместны и зафлудят тред. С этим и без меня прекрасно справится капитанская заты... скузи, милая... дочка :)
.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38994302
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mina Anna MazziniОтладку приходится вести через логи, но и то вперед.
Ты можешь спокойно отлаживать в OllyDbg. Компилируй проект с символьной информацией (галочка в свойствах компилятора). Компилируй. Открывай EXE в ольке. Заходи View-Source files и там будут все твои исходные коды.
YouTube Video
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #38994346
Mina Anna Mazzini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ATM-TURBO 2,

спасибо и за эту подсказку. Обязательно попробую.
.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Многопоточность на VB6.
    #39328932
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2,

а КАК зарегистрировать TrickMultithreading.dll
у меня точку входа не находит ни кто...
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #39329178
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
час58,

Не нужно регистрировать. Просто положить в System32/SysWOW64
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #39329179
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2,
Спасибо.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #39329189
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2,

Ругается.
Где взять функцию?
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #39329192
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ссылку показывает как миссинг.
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #39329609
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В стартовом посте есть ссылка на tlb
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #39329634
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ATM-TURBO 2,

спс
...
Рейтинг: 0 / 0
Многопоточность на VB6.
    #39431224
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сколько же я пропустил за эти 19 месяцев!
...
Рейтинг: 0 / 0
73 сообщений из 73, показаны все 3 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Многопоточность на VB6.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]