Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: CreateThread Добавлено: 17.12.08 19:29  

Автор вопроса:  VβР| Web-сайт: www.homacosoft.com
Понимаю что идиотизм, мазахизм и т.п., но мне очень нужно, переходить на другую платформу невозможно, поэтому я просто обязан через это пройти.

Как юзать эту функцию на VB6? С синхронизацией, надеюсь,проблем у меня не будет - я с ней маленько дело имел (на NET). Я знаю что оно будет вылетать в каждом удобном случае.

Ну просто, пожалуйста, не посылайте в G**gle, а объясните! Очень нужно!


Заранее благодарен.

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #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-сайт: domkratt.com
 Профиль | | #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-сайт: domkratt.com
 Профиль | | #5
Добавлено: 20.12.08 00:05
Это камень в мой огород и признание меня непрофессионалом? =)

Ответить

Номер ответа: 6
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #6 Добавлено: 22.12.08 17:14
Хм, ну если персонаж заявляет что "можно сделать и проще, чем вы предлагаете, только вот почему-то это не будет работать" - невольно возникает желание не просто кинуть камень, а прямо таки метнуть валун :) Шутка :)
Все равно создается впечатление что автор забил на вопрос в тот момент как запостил его на форуме.

Ответить

Номер ответа: 7
Автор ответа:
 VβÐ



Вопросов: 15
Ответов: 194
 Web-сайт: www.homacosoft.com
 Профиль | | #7
Добавлено: 27.12.08 14:38
Нет, просто у аффтора жирнющие проблемы с входа в форум, которые он только что еле-еле решил. И то через ж***.

OLE это конечно мило, но мне нужно распараллелить всего парочку функций, а не строить многопоточную систему. Заниматься подобным, думаю, было бы не оптимально, ну ладно, буду иметь ввиду.

Благодарю за ответы.

Ответить

Номер ответа: 8
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #8 Добавлено: 29.12.08 09:47
Распараллелить можно и через DoEvents (при очень большом желании) :)
В любом случае, потоковую модель лучше рассматривать через призму классов (объектов) а не функций. Так будет намного проще и для понимания, и для реализации.
А "распараллелить всего парочку функций" без обеспечения "потокобезопасности" - это не выход, ибо такой код будет просто мусором...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам