【问题标题】:How to wait for somthing to happen without freezing the UI如何在不冻结 UI 的情况下等待某事发生
【发布时间】:2015-07-03 13:44:43
【问题描述】:

我希望我的应用程序等到 Web 浏览器完全加载后才能使用 DocumentCompleted 事件,但问题是我正在使用 awesmoium webkit 并且 LoadingFrameComplete 事件不会触发。当 iam 在 google 上搜索时,如 iam on google 并搜索“VB.NET”,它不会被触发,所以我想暂停 address changed 事件并等到 web 控件加载和我在 LoadingFrameComplete 事件上设置的代码,如

public Sub webcontrol_addresschanged(sender As Object, e As Awesomium.Core.UrlEventArgs)
//WAIT UNTIL WEB CONTROL LOADS
//DO Something"
End sub

我尝试使用 'do until' 循环,但它冻结了 gui 并且 Web 控件无法导航。

【问题讨论】:

标签: vb.net web-controls awesomium


【解决方案1】:

创建一个模块,将其命名为任何名称(延迟除外)

将这些代码复制粘贴到模块中

代码:

Sub Delay(ByVal dblSecs As Double)
    Const OneSec As Double = 1.0# / (1440.0# * 60.0#)
    Dim dblWaitTil As Date
    Now.AddSeconds(OneSec)
    dblWaitTil = Now.AddSeconds(OneSec).AddSeconds(dblSecs)
    Do Until Now > dblWaitTil
        Application.DoEvents() ' Allow windows message to be processed
    Loop
End Sub

现在,将其保存返回到您的表单代码

输入这个

public Sub webcontrol_addresschanged(sender As Object, e As    Awesomium.Core.UrlEventArgs)
Delay(2) 'Delay(x) means x seconds of delay before executing next command without freezing UI
//DO Something"
End sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 2012-02-07
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多