win32ole_event, message_loop занимает слишком много времени для получения событий на Ruby 64-bit - PullRequest
0 голосов
/ 19 октября 2018

Я использую win32ole для подключения и автоматизации Windows DLL.

Изначально при использовании 32-разрядной версии ruby ​​не было проблем с подключением к объекту и своевременным получением сообщений о событиях.манера.

Теперь, когда мне пришлось использовать 64-битную версию ruby, я столкнулся с трудностями при подключении к объекту, поскольку его класс не был зарегистрирован как 64-битная версия.Это было решено с помощью суррогатного ключа в реестре Windows для подключения к 32-битной dll.

Я не заметил никаких проблем с этим, пока не использовал win32ole message_loop, где я заметил, что событияотправляются с задержкой до 2 минут.

Я обнаружил, что больше вызовов message_loop (в цикле while) ускоряет отправку событий, но очень противоречиво.

time_start = Time.now
while Time.now - time_start < 10
    WIN32OLE_EVENT.message_loop
end

Может ли кто-нибудь предоставить какой-либо вклад, спасибо.

...