昨天晚上问了多线程编程的问题,实现代码如下:
System.Threading.Thread myThread1 ;
delegate void OpenFile2 ();private void Form1_Load(object sender, System.EventArgs e)
{myThread1 = new System.Threading.Thread(new System.Threading.ThreadStart(threadone));
myThread1.Start();
}
private void threadone()
{
this.axWebBrowser1.Invoke (new OpenFile2(test));}
private void test()但是我用这个多线程方法启动一个主窗口中axWebBrowser1.Navigate(。。)的加载文件过程时,主窗口还是好象背定住了一样,无法响应其他事件,跟没用多线程方法编程效果差不多,这是为什么
有没有哪位大仙可以解释的
System.Threading.Thread myThread1 ;
delegate void OpenFile2 ();private void Form1_Load(object sender, System.EventArgs e)
{myThread1 = new System.Threading.Thread(new System.Threading.ThreadStart(threadone));
myThread1.Start();
}
private void threadone()
{
this.axWebBrowser1.Invoke (new OpenFile2(test));}
private void test()但是我用这个多线程方法启动一个主窗口中axWebBrowser1.Navigate(。。)的加载文件过程时,主窗口还是好象背定住了一样,无法响应其他事件,跟没用多线程方法编程效果差不多,这是为什么
有没有哪位大仙可以解释的
1、先在线程中,把数据读取到变量(这时窗口是可以动的)。2、调用invoke显示数据(这时窗口是不能动的,因为你正在修改窗口上的控件数据。 建议用invoke,否则在线程中直接修改窗口效率会很低)。
我觉得应该不是的,比如你用IE打开一个很大的WORD文件,在打开的过程中,该IE窗口是无法响应其他事件的,同样axWebBrowser1跟IE是同一个概念(我个人觉得是这样的)
我的axWebBrowser1加载文件的代码如下,请各位大仙帮帮忙,有什么错误
Object refmissing = System.Reflection.Missing.Value;
oDocument = null;
axWebBrowser1.Navigate(zaddress, ref refmissing , ref refmissing , ref refmissing , ref refmissing);
//zaddress是文件地址
oDocument = null;
axWebBrowser1.Navigate(zaddress, ref refmissing , ref refmissing , ref refmissing , ref refmissing);->object temp=null;
string pagePath = "http://www.csdn.net";
axWebBrowser1.Navigate(pagePath ref temp,ref temp,ref temp,ref temp);
->
axWebBrowser1.Navigate(pagePath,ref temp,ref temp,ref temp,ref temp);