C# 是否在异步方法中运行Windows.Forms.webbrowser.Navigate?

C# 是否在异步方法中运行Windows.Forms.webbrowser.Navigate?,c#,winforms,asynchronous,C#,Winforms,Asynchronous,我正在编写一个测试程序,通过在异步任务函数中运行Navigate(URL)方法,在windows.form的web浏览器上打开一个网页(exp.) 但它不会打开表单并显示网页,尽管我在那里设置了断点,并看到在Navigate之前调用了函数,但没有调用Navigate函数 表格编号: public partial class ImmoScoutForm : Form { public ImmoScoutForm() { InitializeComponent();

我正在编写一个测试程序,通过在异步任务函数中运行Navigate(URL)方法,在windows.form的web浏览器上打开一个网页(exp.)

但它不会打开表单并显示网页,尽管我在那里设置了断点,并看到在Navigate之前调用了函数,但没有调用Navigate函数

表格编号:

public partial class ImmoScoutForm : Form
{
    public ImmoScoutForm()
    {
        InitializeComponent();
        //this.immoScoutWebBrowser.Navigate("http://www.microsoft.com");
        //NavigateWebPage();

        this.immoScoutWebBrowser.Navigated += new System.Windows.Forms.WebBrowserNavigatedEventHandler(webBrowser_Navigated);
        this.immoScoutWebBrowser.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(WebBrowserDocumentCompleted);
    }

    public void NavigateWebPage()
    {
        this.immoScoutWebBrowser.Navigate("http://www.microsoft.com");
    }

    public void NavigateWebPage(WebBrowser wb)
    {
        if (wb != null)
        {
            wb.Navigate("http://www.microsoft.com");
        }
    }

    private void webBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e)
    {
        HideScriptErrors(this.immoScoutWebBrowser, true);
        //if (ConnectBtn.IsEnabled)
        //{
        //    ConnectBtn.IsEnabled = false;
        //}
    }

    public void WebBrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        MessageBox.Show("Operation has completed !");
    }

    public static void HideScriptErrors(System.Windows.Forms.WebBrowser wb, bool Hide)
    {
        FieldInfo fiComWebBrowser = typeof(System.Windows.Forms.WebBrowser).GetField("_axIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);
        if (fiComWebBrowser == null) return;
        object objComWebBrowser = fiComWebBrowser.GetValue(wb);
        if (objComWebBrowser == null) return;
        objComWebBrowser.GetType().InvokeMember("Silent", BindingFlags.SetProperty, null, objComWebBrowser, new object[] { Hide });
    }

}
class program.cs

static class Program
{
    private static ImmoScoutTestForms.ImmoScoutForm _immoScoutWebForm;

    public static ImmoScoutTestForms.ImmoScoutForm ImmoScoutWebForm
    {
        get { return _immoScoutWebForm; }
        set
        {
            _immoScoutWebForm = value;
        }
    }

    /// <summary>
    /// Der Haupteinstiegspunkt für die Anwendung.
    /// </summary>
    [STAThread]
    public static void Main()
    {

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        ImmoScoutWebForm = new ImmoScoutTestForms.ImmoScoutForm();
        //OpenThePage();

        Task.Run(() => CallPageAsyn().Wait());

        //Application.Run(ImmoScoutWebForm);

    }

    public static void OpenThePage()
    {
        if(ImmoScoutWebForm != null)
        {
            ImmoScoutWebForm.immoScoutWebBrowser.Navigate("http://www.microsoft.com");
        }

        Application.Run(ImmoScoutWebForm);
    }

    public static async Task CallPageAsyn()
    {
        await TestAsyn();
        ImmoScoutWebForm.immoScoutWebBrowser.Navigate("http://www.microsoft.com");
    }


    public static async Task TestAsyn()
    {
        Console.WriteLine("Waiting: ");
    }
静态类程序
{
私有静态immoscoutteForms.ImmoScoutForm\u immoScoutWebForm;
公共静态immoscoutteForms.ImmoScoutForm ImmoScoutWebForm
{
获取{return}
设置
{
_不固定形式=值;
}
}
/// 
///这是一个很好的例子。
/// 
[状态线程]
公共静态void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
ImmoScoutWebForm=新的ImmoScoutTestForms.ImmoScoutForm();
//打开页面();
Task.Run(()=>CallPageAsyn().Wait());
//Application.Run(immoswcowebform);
}
公共静态无效打开页面()
{
if(immoScowebForm!=null)
{
IMMOSCOWTWebForm.IMMOSCOWTWebrowser.Navigate(“http://www.microsoft.com");
}
Application.Run(immoswcowebform);
}
公共静态异步任务CallPageAsyn()
{
等待TestAsyn();
IMMOSCOWTWebForm.IMMOSCOWTWebrowser.Navigate(“http://www.microsoft.com");
}
公共静态异步任务TestAsyn()
{
控制台。WriteLine(“等待:”);
}
}

我不知道为什么“await TestAsyn();”之后的函数不能被调用,而编译器已经完成了它?或者你知道我怎么做吗