Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему виснет / 16 сообщений из 16, страница 1 из 1
23.07.2012, 17:16
    #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
23.07.2012, 18:03
    #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
23.07.2012, 18:24
    #37889605
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет
TpaBka, я мало еще работаю в VB6. поэтому не правильно назвал.
Так надо было: вытащить на форму таймер и в коде так???:
Код: vbnet
1.
2.
3.
Private Sub Timer1_Timer()
 ReadCoils
End Sub
...
Рейтинг: 0 / 0
23.07.2012, 18:33
    #37889615
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет
Скажите а таймер сразу запускается. как его на кнопку посадить?
...
Рейтинг: 0 / 0
23.07.2012, 18:55
    #37889646
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет
В общем запускался когда надо???
...
Рейтинг: 0 / 0
23.07.2012, 18:57
    #37889651
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет
Кстати вопрос про многопоточность тоже в силе!!!!!!!!!!
...
Рейтинг: 0 / 0
23.07.2012, 19:59
    #37889700
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет
Техник55В общем запускался когда надо???таймер запускается, когда ему выставлено Enabled = True
...
Рейтинг: 0 / 0
23.07.2012, 20:00
    #37889701
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет
Техник55Кстати вопрос про многопоточность тоже в силе!!!!!!!!!!многопоточность делается с помощью проекта ActiveX exe
...
Рейтинг: 0 / 0
23.07.2012, 20:40
    #37889720
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет
Antonariyмногопоточность делается с помощью проекта ActiveX exe
Ииии..ыыыыыы
Извини, Antonariy, но я эту глючность полностью так и не осилил и в производство запустить так и не решился.
Проще уж кривой ActiveX какой-нибудь регистрировать-подсовывать.
...
Рейтинг: 0 / 0
23.07.2012, 20:41
    #37889723
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет
Под ActiveX имел ввиду ocx by microsoft а не exe by me.
...
Рейтинг: 0 / 0
23.07.2012, 22:43
    #37889808
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет
Дмитрий77Antonariyмногопоточность делается с помощью проекта ActiveX exe
Ииии..ыыыыыы
Извини, Antonariy, но я эту глючность полностью так и не осилил и в производство запустить так и не решился.Соболезную.
Дмитрий77Проще уж кривой ActiveX какой-нибудь регистрировать-подсовывать.Каким боком оно относится к многопоточности?
...
Рейтинг: 0 / 0
24.07.2012, 03:26
    #37889912
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет
Я мало грамотен в этих вещах (чуть-чуть читал в нете), но хотелось бы немного уточнить. Многопоточность - улучшает продуктивность проги!!! Делает возможным работать процедурам одновременно (параллельно)!!! Я правильно понимаю???
Antonariyмногопоточность делается с помощью проекта ActiveX exe
Не подскажите с чего начать, наметки какие-нибудь??? Вообще я читал мельком , что в VB6 это тяжело реализуется?!
...
Рейтинг: 0 / 0
24.07.2012, 09:08
    #37889998
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет
Техник55Многопоточность - улучшает продуктивность проги!!!Нет.
Техник55Antonariyмногопоточность делается с помощью проекта ActiveX exe
Не подскажите с чего начать, наметки какие-нибудь??? Вообще я читал мельком , что в VB6 это тяжело реализуется?! 10555629
...
Рейтинг: 0 / 0
24.07.2012, 09:56
    #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
24.07.2012, 12:51
    #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
24.07.2012, 13:28
    #37890434
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему виснет
Дмитрий77Это ответ по поводу "каким боком".Он это делает асинхронно, потоки тут ни при чем.
Дмитрий77А про ActiveX.exe, ссылка что вы дали:
/topic/844531&pg=2
Заканчивается приведением "примера кривого пути" при регистрации компонента. Или я еще должен реестр перерывать ручками и затычки писать на все случаи жизни? Мне этого честно хватило, чтобы прекратить изыскания на данную тему и не тратить время на ActiveX.exe .Не смог я это воспроизвести, все работало с любыми путями.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему виснет / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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