CefSharp ChromiumWebBrowser初始化完成后加载网址

.Net技术 码拜 9年前 (2016-01-06) 32496次浏览 0个评论

使用CefSharp时,自定义了一个扩展方法LoadPageAsync,用于在ChromiumWebBrowser初始化完成时加载网址,如果初始化未完成时加载Url,会加载不成功。此方法返回Task,返回后的Task不能再调用Start方法,否则会提示:不能对约定样式的任务调用 Start。

代码如下:

public static Task LoadPageAsync(this ChromiumWebBrowser browser, string address = null)
{
var tcs = new TaskCompletionSource<bool>();

EventHandler<IsBrowserInitializedChangedEventArgs> handler = null;
handler = (sender, args) =>
{
if (args.IsBrowserInitialized)
{
browser.IsBrowserInitializedChanged -= handler;

if (!string.IsNullOrEmpty(address))
{
browser.InvokeOnUiThreadIfRequired(() => browser.Load(address));
}
tcs.TrySetResult(true);
}
};

browser.IsBrowserInitializedChanged += handler;
return tcs.Task;
}


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明CefSharp ChromiumWebBrowser初始化完成后加载网址
喜欢 (6)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!