Тормоза с окном!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Тормоза с окном!

Сообщение Arcanoid » 29.03.2005 (Вт) 18:57

Ситуэйшн такова:

В проге на vb6 при клике на кнопку формы вызывается процедура моей ДЛЛ (написана на С++).
В ентой процедуре запускается "параллельный" поток исполнения, а сама она завершается.
В том потоке создаётся новое окно (через CreateWindowEx()) и крутится главный его цикл. Это окно работает прекрасно и без тормозов!, а ВБ-шная форма при этом наоборот :evil: :evil: - тупо тормозит (обрабатывает события раз в несколько сек.) :cry: :cry: :cry: . Загрузка ЦП при этом всего 2...3%.

Почему так? Ответьте кто знает плиз! :oops:

:!: С другими потоками, которые созданы так же, но не работают с окнами, никаких тормозов вроде нет...

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

Inferno
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 26.01.2005 (Ср) 1:06

Сообщение Inferno » 29.03.2005 (Вт) 19:15

Попробуй в цикл засунуть DoEvents

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 30.03.2005 (Ср) 14:16

Не помогло.

Мне уже начинает казаться, что ВБ просто не любит чужие потоки в своём процессе и уж тем более чужие окна! Кстати, сколько пробовал использовать функции типа PeekMessage() и PostThreadMessage(), редко когда они удавались - обычно прога на них просто висла.. Видать в ВБ проблемы с очередями сообщений... :roll:

Может есть ещё какие-нть варианты :?: :?:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.03.2005 (Ср) 14:33

VB прекрасно работает с потоками, созданными правильно :) Вернее, они ему пофигу - но результат такой, словно он работает с ними правильно :)
Например, мой Waiter! - это ручками создаваемый поток, и он никому ничем не мешает :)
И проблем с очередями сообщений у VB тоже нет...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 30.03.2005 (Ср) 20:46

Ну, у меня тоже есть threadLoader! :lol: и даже мьютексы ... - это всё работает нормально, я согласен (но в нём нет окна)! А, блин, окно ВБ, которое НИКАКИМ БОКОМ я не связывал с окном внутри потока тормозит! Такое ощущение, что до потока ВБ-окна просто не доходит дело (квант на процессоре) .. :!: :?:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 187

    TopList