Имя: Пароль:
1C
 
Внезапная параллельность в ВК через 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
15 Гений 1С
 
гуру
24.09.15
17:17
(14) пока нет, пока отложил, юзаю в толстом клиенте.
16 Сияющий в темноте
 
24.09.15
17:49
оле режим
разные размещения aparent
исполняются в разных потоках
так что можно просто ReplyMessage вызвать и радоваться жизни,но не долго
передача данных в чужое размещение только через очередь сообщений соответственно очень медленно
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс