![]() |
![]() |
|
Внезапная параллельность в ВК через DoEvents | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
23.09.15
✎
21:18
|
Пишу ВК для УФ, толстый клиент.
Вставляю в один из методов DoEvents и что бы вы думали? Выполнение кода возвращается обратно в 1С, т.е. там можно опять щелкать кнопочки и т.п. Но при этом по завершению работы процедуры ВК управление опять передается в 1С. Получается квазипараллельность. Что это за фигня, сталкивались? |
|||
1
XLife
23.09.15
✎
21:30
|
(0) >УФ, толстый клиент
продолжай заниматься куйней |
|||
2
Zamestas
23.09.15
✎
21:32
|
(1) Профессиональное занимание куйней - не сильный грех.
|
|||
3
vde69
23.09.15
✎
22:22
|
в чем вопрос?
даже типовой код 1с позволяет вызывать код на выполнение и не дожидаясь завершение оного что-то делать.... да что там 1с, даже пакетники bat это умеют, и это лет 30 наверно уже... |
|||
4
Serginio1
23.09.15
✎
22:23
|
DoEvents это надо понимать вызов события?
Это не параллельность а просто вызов метода в 1С. Параллельность ты можешь вызывая метод ВК в отличном потоке от потока приложения UI 1C. Правда событие 1С все равно нужно выполнять в потоке 1С. Но это делается через контекс синхронизации. Посмотри примеры http://catalog.mista.ru/public/238584/ |
|||
5
Serginio1
23.09.15
✎
22:28
|
в Вк кстати есть интерфейс IAsyncEvent
и метод ExternalEvent правда там рграничение на размер строки которые можно регулировать через procedure SetEventBufferDepth(lDepth: Integer); safecall; procedure GetEventBufferDepth(var plDepth: Integer); safecall; |
|||
6
jsmith82
23.09.15
✎
22:30
|
DoEvents это педерача управления операйционной системе
|
|||
7
jsmith82
23.09.15
✎
22:31
|
Не совсем понятен сабж. Каким образом конкретно используется ВК? Вызов функции? Или чё..
|
|||
8
Гений 1С
гуру
23.09.15
✎
22:33
|
(7) конкретно 1с вызывает метод ВК, чтобы она прочитала отпечаток пальца со сканера ANVIZ UBIO. Так вот я туда вставлял DoEvents, как в примере на бейсике и увидел, что модальность вызова теряется, что мне было не нужно.
|
|||
9
jsmith82
23.09.15
✎
22:36
|
(8) Ну всё правильно. Раз в методе зашит DoEvents, получается выполнение его (метода) приостанавливалось, то бишь 1Ска внезапно "отмирала" от созерцания своего треда
|
|||
10
jsmith82
23.09.15
✎
22:37
|
Ай да, гений, ай да молодец, с помощью ВК победил синхронность 1ски. Надо теперь отчёты формировать через ВК с DoEvents
|
|||
11
jsmith82
23.09.15
✎
22:38
|
Это аналог ОбработкаПрерыванияПользователя, но в более кошерном виде
|
|||
12
Serginio1
23.09.15
✎
22:49
|
(11) так понимаю
Обрабатывает все сообщения Окна, которые в данный момент находятся в очереди сообщений. Часто применяемый прием для показа изменений на форме |
|||
13
Serginio1
23.09.15
✎
22:50
|
(8) Вызывай метод в отдельном потоке или подписывайся на событие сканера.
|
|||
14
Serginio1
24.09.15
✎
10:17
|
(0) У тебя получисось подключить
Коллеги, что-то запарился я с подключением своей ВК к УФ |
|||
15
Гений 1С
гуру
24.09.15
✎
17:17
|
(14) пока нет, пока отложил, юзаю в толстом клиенте.
|
|||
16
Сияющий в темноте
24.09.15
✎
17:49
|
оле режим
разные размещения aparent исполняются в разных потоках так что можно просто ReplyMessage вызвать и радоваться жизни,но не долго передача данных в чужое размещение только через очередь сообщений соответственно очень медленно |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |