Проблема с веб-браузером Control C # - PullRequest
0 голосов
/ 20 января 2019

Я использую контроль Webrowser, чтобы перейти к URL и сделать шаг, и это все. Проблема, с которой я сталкиваюсь, заключается в том, что элемент управления работает нормально ровно 2 раза, а затем он перестает работать и не загружает URL-адрес больше, чем я понял, если я закрою приложение и снова запустите, он снова работает дважды, а затем то же самое. Я пытался так примерно 5+ раз, каждый раз, так что это странное поведение.

Элемент управления находится внутри потока.

 var th = new Thread(() =>
            {
                using (var br = new WebBrowser())
                {
                    br.DocumentCompleted += browser_DocumentCompleted;

                    br.ScriptErrorsSuppressed = true;
                    br.ScrollBarsEnabled = true;
                    br.AllowNavigation = true;

                    br.Navigate(urltoRun);
                    Application.Run();
                }
            });
            th.SetApartmentState(ApartmentState.STA);
            th.Start();
            th.Join(60000);
            th = null;

И browser_DocumentCompleted:

    private void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        if (!string.IsNullOrEmpty(htmlResult))
            return;
    // DO SOMETHING...
    }

1 Ответ

0 голосов
/ 20 января 2019

У меня была та же проблема, и у меня было исключение, поэтому убедитесь, что в настройках исключений установлен флажок «Общие исключения времени выполнения языка» ( ctrl + alt + e откроет окно).

Если элемент управления веб-браузера не такой уж дружественный, вы можете попробовать использовать "Cefsharp" для winform.

...