Why is sometimes WebBrowser.Dispose() launching Internet Explorer?

后端 未结 3 635
春和景丽
春和景丽 2021-01-07 01:59

When I do the following (Actually I repeat the same whole code with different web pages):

        Navigator nav;
        nav = new Navigator();
        nav.B         


        
3条回答
  •  無奈伤痛
    2021-01-07 02:31

    I had the same problem when I tried to invoke Dispose() function of a WebBrowser in a ThreadPool Queued executing.

    I started a Timer in the delegated of Control.Invoke to resolve it. This is my code:

        public delegate void SucceedDelegate();
        // calling by ThreadPool.QueueUserWorkItem(succeed);
        protected void succeed(Object obj){
            Application.OpenForms[0].Invoke(new SucceedDelegate(succeed0));
        }
        private void succeed0()
        {
            Timer timer = new Timer();
            timer.Interval = 1;
            timer.Tick += succeedHandler;
            timer.Start();
        }
        private void succeedHandler(object sender, EventArgs e)
        {
            ((Timer)sender).Stop();
            succeed00();
        }
        private void succeed00()
        {
            //call WebBrowser.Dispose() here
        }
    

    It's ugly, but working well.

提交回复
热议问题