读书人

一个多线程的有关问题大家来帮帮忙吧

发布时间: 2012-01-29 21:39:32 作者: rapoo

一个多线程的问题,大家来帮帮忙吧!
在Form1中定义了一个全局对象WebBrowser,窗体在启动的时候将它实力化了:

C# code
public WebBrowser _myWB;        private void Form1_Load(object sender, EventArgs e)        {            _myWB = new WebBrowser();        }


然后在按了一个按扭之后启动一个线程,这个线程调用A类的一个静态方法,这个静态方法要操作Form1中的WebBrowser,这个静态方法通过委托(delete_webbrowser)封装一个方法(_get_page)来操作那个WebBrowser:
C# code
public static string Get_Page(string xURL)        {            _webbrowser delete_webbrowser = new _webbrowser(_get_page);            string[] para = new string[] { xURL };            string content = (string)Program._form1._myWB.Invoke(delete_webbrowser, para);   //这里出错            return content;        }


请看上面出错部分,出错的提示是:在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。

这里应该不会出现这种错误啊,因为Program._form1是已经实例化了的,窗口已经有了,为什么还会出现这种错误??

[解决办法]
看看,顶下
[解决办法]
_myWB没有在界面上显示?
修改成:
string content = (string)Program._form1.Invoke(delete_webbrowser, para);
试一下

读书人网 >C#

热点推荐