powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему виснет
16 сообщений из 16, страница 1 из 1
Почему виснет
    #37889502
Техник55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно опрашивать контроллер каждую секунду. Попробовал с помощью таймера. Зависла!!!
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Command1_Click()
Dim StartTime
StartTime = Timer
Do While Timer < StartTime + 1
ReadCoils
Call sapiSleep(1000)
Loop
End Sub



Еще попутный вопрос видел тему многопоточность VBA. А как дело обстоит в VB6???
Просто допутим у меня в программе идет оповещение. Если абонент занят, то приходится усыплять Call sapiSleep(20000), затем снова пытаюсь оповестить.
И прога зависает на 20сек.? Можно чтобы процедуры параллельно обрабатывались???
...
Рейтинг: 0 / 0
Почему виснет
    #37889590
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может не так понял, но если ты вот это:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Command1_Click()
Dim StartTime
StartTime = Timer
Do While Timer < StartTime + 1
ReadCoils
Call sapiSleep(1000)
Loop
End Sub

называешь "с помощь таймера", то это не так
Размести на форме элемент управления таймер и в нем вызывай ReadCoils с интервалом 1000
...
Рейтинг: 0 / 0
Почему виснет
    #37889605
Техник55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TpaBka, я мало еще работаю в VB6. поэтому не правильно назвал.
Так надо было: вытащить на форму таймер и в коде так???:
Код: vbnet
1.
2.
3.
Private Sub Timer1_Timer()
 ReadCoils
End Sub
...
Рейтинг: 0 / 0
Почему виснет
    #37889615
Техник55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите а таймер сразу запускается. как его на кнопку посадить?
...
Рейтинг: 0 / 0
Почему виснет
    #37889646
Техник55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем запускался когда надо???
...
Рейтинг: 0 / 0
Почему виснет
    #37889651
Техник55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати вопрос про многопоточность тоже в силе!!!!!!!!!!
...
Рейтинг: 0 / 0
Почему виснет
    #37889700
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Техник55В общем запускался когда надо???таймер запускается, когда ему выставлено Enabled = True
...
Рейтинг: 0 / 0
Почему виснет
    #37889701
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Техник55Кстати вопрос про многопоточность тоже в силе!!!!!!!!!!многопоточность делается с помощью проекта ActiveX exe
...
Рейтинг: 0 / 0
Почему виснет
    #37889720
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyмногопоточность делается с помощью проекта ActiveX exe
Ииии..ыыыыыы
Извини, Antonariy, но я эту глючность полностью так и не осилил и в производство запустить так и не решился.
Проще уж кривой ActiveX какой-нибудь регистрировать-подсовывать.
...
Рейтинг: 0 / 0
Почему виснет
    #37889723
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под ActiveX имел ввиду ocx by microsoft а не exe by me.
...
Рейтинг: 0 / 0
Почему виснет
    #37889808
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Antonariyмногопоточность делается с помощью проекта ActiveX exe
Ииии..ыыыыыы
Извини, Antonariy, но я эту глючность полностью так и не осилил и в производство запустить так и не решился.Соболезную.
Дмитрий77Проще уж кривой ActiveX какой-нибудь регистрировать-подсовывать.Каким боком оно относится к многопоточности?
...
Рейтинг: 0 / 0
Почему виснет
    #37889912
Техник55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я мало грамотен в этих вещах (чуть-чуть читал в нете), но хотелось бы немного уточнить. Многопоточность - улучшает продуктивность проги!!! Делает возможным работать процедурам одновременно (параллельно)!!! Я правильно понимаю???
Antonariyмногопоточность делается с помощью проекта ActiveX exe
Не подскажите с чего начать, наметки какие-нибудь??? Вообще я читал мельком , что в VB6 это тяжело реализуется?!
...
Рейтинг: 0 / 0
Почему виснет
    #37889998
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Техник55Многопоточность - улучшает продуктивность проги!!!Нет.
Техник55Antonariyмногопоточность делается с помощью проекта ActiveX exe
Не подскажите с чего начать, наметки какие-нибудь??? Вообще я читал мельком , что в VB6 это тяжело реализуется?! 10555629
...
Рейтинг: 0 / 0
Почему виснет
    #37890051
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Техник55Скажите а таймер сразу запускается. как его на кнопку посадить?У таймера есть свойство Interval
(интервал через который будет отрабатываться событие Timer1_Timer, задается в мсек)
Его можно задавать, например, на событии Form_Load
или же в самих параметрах таймера.
Если отрабатываемая процедура в таймере очень громоздкая и
занимает больше времени чем заданный интервал, возможно,
возникнет очередь этого события, хотя я в этом не совсем уверен.
Но на всякий случай напиши вот так:
Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub Timer1_Timer()
Timer1.Interval=0
ReadCoils
DoEvents
Timer1.Interval=1000
End Sub
...
Рейтинг: 0 / 0
Почему виснет
    #37890372
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyСоболезную.
Дмитрий77Проще уж кривой ActiveX какой-нибудь регистрировать-подсовывать.Каким боком оно относится к многопоточности?
Мне не влом объяснить свою позицию и что к чему.
Я сталкивался(-юсь) с двумя проблемами:
1. Когда надо получить информацию из инета и по факту получения сделать чего-либо.
Приконнектиться к сайту и чего-нибудь считать
2. Когда надо проконвертировать файл и по факту конвертации сделать чего-либо
Как вызвать функцию чтоб она не стопорила собой программу
В обоих случаях процесс может занять какое-то время в течении которого прога "висит", 1)эн-то не-кра-си-во 2)и при этом логически само действо не критично с точки зрения выполнения других полезных действий в запущенной проге.
Логика подсказывает, что действо его надо делать "в отдельном потоке".

>1. Когда надо получить информацию из инета и по факту получения сделать чего-либо.
Сколько ни мудохался со всякими синхроннистями-асинхронностями, оптимальным решением оказалось таки:
Microsoft Internet Transfer Control 6.0 (SP6)
Это ответ по поводу "каким боком". Не знаю каким, но она не мешает нажимать кнопки в проге пока ждет, не рисует песочных часиков и не требует напряга мозгов для реализации.

>2. Когда надо проконвертировать файл и по факту конвертации сделать чего-либо
Если уж надо подождать и не охота вешать, то
1) Запускаю через Shell
2) Отслеживаю таймером процесс по имени пока тот жив.
Вот и вся реализация многопоточности.

Ну, правда напоролся на глюк (решаемый) недавно:
Запуск внешней программы, контроль работает ли еще она через таймер. Не могу понять глюк.

А про ActiveX.exe, ссылка что вы дали:
/topic/844531&pg=2
Заканчивается приведением "примера кривого пути" при регистрации компонента. Или я еще должен реестр перерывать ручками и затычки писать на все случаи жизни? Мне этого честно хватило, чтобы прекратить изыскания на данную тему и не тратить время на ActiveX.exe .
...
Рейтинг: 0 / 0
Почему виснет
    #37890434
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Это ответ по поводу "каким боком".Он это делает асинхронно, потоки тут ни при чем.
Дмитрий77А про ActiveX.exe, ссылка что вы дали:
/topic/844531&pg=2
Заканчивается приведением "примера кривого пути" при регистрации компонента. Или я еще должен реестр перерывать ручками и затычки писать на все случаи жизни? Мне этого честно хватило, чтобы прекратить изыскания на данную тему и не тратить время на ActiveX.exe .Не смог я это воспроизвести, все работало с любыми путями.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему виснет
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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