不显示webBrowser线程。 c#

时间:2019-05-21 08:35:50

标签: c# multithreading

我在C#(windows.form)中有一个具有现代界面的应用程序。 该应用程序具有几种“形式”。在名为“ FormInicio”的表单(FormInicio.cs [Design])中,我有一个带有文本框和按钮的WebBrowser。

我需要在浏览器中执行textBox的URL并滚动。 但是浏览器中没有线程,应用程序会卡住,直到滚动完成。

当您完成显示第一个URL时,将通过循环为您传递更多的URL。这些URL将在您进入每个URL时获得(对于最后一个,我不需要帮助)。我只需要帮助,以便浏览器处于线程状态。

我试图在新线程上创建浏览器,但未显示。

    private void navegador(string urlM)
    {
        Uri url = new Uri(urlM);

        var th = new Thread(() => {                
            var webBrowser1 = new WebBrowser();
            webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted_1;                
            if (ClassStatic.permitirJS){
                webBrowser1.ScriptErrorsSuppressed = true;
            }else{
                webBrowser1.ScriptErrorsSuppressed = false;
            }

            webBrowser1.Navigate(url);              

            Application.Run();                
        });
        th.SetApartmentState(ApartmentState.STA);
        th.Start();         
    }

    private void webBrowser1_DocumentCompleted_1(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        var br = sender as WebBrowser;
        if (br.Url == e.Url)
        {

            Console.WriteLine("Natigated to {0}", e.Url);
            Application.ExitThread();   // Stops the thread webbrowser
        }

    }

0 个答案:

没有答案