CefSharp: Как я могу вернуться к основному потоку приложения после просмотра? - PullRequest
0 голосов
/ 25 мая 2020

Я новичок в CefSharp. Я использую Offscreen, чтобы перейти на веб-сайт, войти в систему, а затем получить ссылку с полученной страницы. На этом этапе я хочу вернуться к основному потоку приложения. Прямо сейчас у меня есть:

static void Main(string[] args)
{
    Cef.Initialize(settings, performDependencyCheck: true, browserProcessHandler: null);
    _browser = new ChromiumWebBrowser(_loginURL);
    _browser.LoadingStateChanged += BrowserLoadingStateChanged;

    *I want to wait here until all the browser stuff is complete*

    Console.ReadKey();
    Cef.Shutdown();
}

private static void BrowserLoadingStateChanged(object sender, LoadingStateChangedEventArgs e)
{
    if (!e.IsLoading)
    {
        if (!_isLoggedIn)
        {
            ...
        }
    } else {
        var myLinkScript = @"document.querySelector('[href*=testlink]').href;";
        _browser.EvaluateScriptAsync(myLinkScript).ContinueWith(u =>
        {
            if (u.Result.Success && (u.Result.Result != null))
            {
                *Here I have the link.  I want to return to the main application thread.
                *I do not want to continue doing more steps here.
            }
        }
    }

Если бы я делал это в «обычном» приложении, я бы инкапсулировал все в функцию, например: string link = DoBrowserStuff (_loginURL);

Любая помощь будет принята с благодарностью. Спасибо.

...