CEF3/Xilium CefGlue rom 非 UI スレッド (オフスクリーン ブラウザー) で Web ページのソースを取得したい
私はこれをします
internal class TestCefLoadHandler : CefLoadHandler
{
protected override void OnLoadStart(CefBrowser browser, CefFrame frame)
{
// A single CefBrowser instance can handle multiple requests for a single URL if there are frames (i.e. <FRAME>, <IFRAME>).
if (frame.IsMain)
{
Console.WriteLine("START: {0}", browser.GetMainFrame().Url);
}
}
protected override void OnLoadEnd(CefBrowser browser, CefFrame frame, int httpStatusCode)
{
if (frame.IsMain)
{
MyCefStringVisitor mcsv = new MyCefStringVisitor();
frame.GetSource(mcsv);
Console.WriteLine("END: {0}, {1}", browser.GetMainFrame().Url, httpStatusCode);
}
}
}
class MyCefStringVisitor : CefStringVisitor
{
private string html;
protected override void Visit(string value)
{
html = value;
}
public string Html
{
get { return html; }
set { html = value; }
}
}
しかし、への呼び出し
GetSource(...)は非同期なので、呼び出しが発生するのを待ってから結果を処理する必要があります。
呼び出しが発生するのを待つにはどうすればよいですか?