Нет, Вы разобрались в нем, Вы определенно хотите DoEvents в своем цикле.
, Если Вы помещаете DoEvents
в свой основной цикл и находите, это замедляет обработку слишком много, попытайтесь назвать Windows API function GetQueueStatus
(который намного быстрее, чем DoEvents) быстро определить, необходимо ли даже назвать DoEvents. GetQueueStatus
говорит Вам, если существуют какие-либо события для обработки.
' at the top:
Declare Function GetQueueStatus Lib "user32" (ByVal qsFlags As Long) As Long
' then call this instead of DoEvents:
Sub DoEventsIfNecessary()
If GetQueueStatus(255) <> 0 Then DoEvents
End Sub
Да ладно, я решил проблему сам:
вместо использования if? then: else
, я расширил его до:
raise LibTH::Error::IDNotFound if res.size == 0
res
Похоже, вы не можете использовать постоянное значение (как имя класса) в C-подобном if
операторе, таким образом:
syntax error, unexpected tCONSTANT, expecting kDO or '{' or '('
Спасибо!