Страница: 1 |
Страница: 1 |
Вопрос: CreateThread
Добавлено: 17.12.08 19:29
Автор вопроса: VβÐ | Web-сайт:
Понимаю что идиотизм, мазахизм и т.п., но мне очень нужно, переходить на другую платформу невозможно, поэтому я просто обязан через это пройти.
Как юзать эту функцию на VB6? С синхронизацией, надеюсь,проблем у меня не будет - я с ней маленько дело имел (на NET). Я знаю что оно будет вылетать в каждом удобном случае.
Ну просто, пожалуйста, не посылайте в G**gle, а объясните! Очень нужно!
Заранее благодарен.
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #1
Добавлено: 17.12.08 21:59
Мой тебе совет - забей. Или юзай ActiveX EXE и APC.
Номер ответа: 2
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #2
Добавлено: 19.12.08 10:16
После вызова инициализируй OLE в потоке и создавай рэндомный объект (это приведет к инициализации TLS).
До этого момента старайся использовать поменьше даже элементарных функций, все действия проводи только через АПИ и только объявленных в TLB, ни в коем случае не устанавливай обработчик ошибок.
Когда все успешно прошло - флаг синхронизации тебе в руки
Номер ответа: 3
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #3
Добавлено: 19.12.08 15:32
TLS можно и без OLE-объектов инициализировать, только вот не всегда это дело работает. Больше четырех потоков никогда не получалось породить.
Номер ответа: 4
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #4
Добавлено: 19.12.08 17:35
А в чем сложности? Как я сказал, инициализируешь OLE, TLS и маршалишь интерфейс.
Есть подозрение что проблема в твоем "TLS можно и без OLE-объектов инициализировать".
Самодеятельность в некоторых случаях вредит делу, особенно если смутно представляешь что именно делаешь
Ну, а вариант "для Чайников", как ты заметил - ActiveX.Exe. Проще не придумаешь.
Номер ответа: 5
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #5
Добавлено: 20.12.08 00:05
Это камень в мой огород и признание меня непрофессионалом?
Номер ответа: 6
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #6
Добавлено: 22.12.08 17:14
Хм, ну если персонаж заявляет что "можно сделать и проще, чем вы предлагаете, только вот почему-то это не будет работать" - невольно возникает желание не просто кинуть камень, а прямо таки метнуть валун Шутка
Все равно создается впечатление что автор забил на вопрос в тот момент как запостил его на форуме.
Номер ответа: 7
Автор ответа:
VβÐ
Вопросов: 15
Ответов: 194
Web-сайт:
Профиль | | #7
Добавлено: 27.12.08 14:38
Нет, просто у аффтора жирнющие проблемы с входа в форум, которые он только что еле-еле решил. И то через ж***.
OLE это конечно мило, но мне нужно распараллелить всего парочку функций, а не строить многопоточную систему. Заниматься подобным, думаю, было бы не оптимально, ну ладно, буду иметь ввиду.
Благодарю за ответы.
Номер ответа: 8
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #8
Добавлено: 29.12.08 09:47
Распараллелить можно и через DoEvents (при очень большом желании)
В любом случае, потоковую модель лучше рассматривать через призму классов (объектов) а не функций. Так будет намного проще и для понимания, и для реализации.
А "распараллелить всего парочку функций" без обеспечения "потокобезопасности" - это не выход, ибо такой код будет просто мусором...