首页 新闻 会员 周边 捐助

我需要在另外的线程里读取到webBrowser.ReadyState属性,这天两研究很多方法,但由于自已悟性太差,还弄不

0
[已解决问题] 解决于 2013-11-21 22:53

我需要在另外的线程里读取到webBrowser.ReadyState属性,这天两研究很多方法,但由于自已悟性太差,还弄不出来。
所以我弄了个测试的小项目,
希望高手给我补几行代码可以吗?就让我能在新线程里读取到webBrowser.ReadyState属性就行了。
测试项目麻烦到百度网盘下载一下,万分感谢!!
http://pan.baidu.com/s/1rHg7y

yeopp的主页 yeopp | 菜鸟二级 | 园豆:319
提问于:2013-11-20 22:56
< >
分享
最佳答案
0
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            
        }
         //自定义线程
        System.Threading.Thread x;
        delegate void CallBackPro(string url);
        private void Form1_Load(object sender, EventArgs e)
        {

        }

        public void ThreadPro()
        {
            SafeThreadProc("www.baidu.com");
        }

        private void SafeThreadProc(string  url)
        {
            if (this.webBrowser1.InvokeRequired)
            {
                CallBackPro stdv = new CallBackPro(SafeThreadProc);
                this.Invoke(stdv, new object[] { url });
            }
            else
            {
                this.webBrowser1.Navigate(url);
                MessageBox.Show(webBrowser1.ReadyState.ToString());
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            x = new System.Threading.Thread(new System.Threading.ThreadStart(this.ThreadPro));
            x.Start();
        }
    }
}
按第一次是uninitialed 等网页加载再按就是Loadeing
还不会吗。。。我看到你两次了
奖励园豆:5
大芝麻 | 初学一级 |园豆:4 | 2013-11-20 23:24

不好意思,我是新手,理解起来不是很快。谢谢您!

yeopp | 园豆:319 (菜鸟二级) | 2013-11-21 22:52
其他回答(1)
0

参考我回复的这个帖子:http://q.cnblogs.com/q/57011/

空明流光 | 园豆:111 (初学一级) | 2013-11-21 11:03

其实你的新线程方法里的第一句代码就有可能引发非UI创建者线程访问UI的异常,如果没报错,可能是这个控件是线程安全的。

支持(0) 反对(0) 空明流光 | 园豆:111 (初学一级) | 2013-11-21 11:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册