请问delphi中如何在多线程环境下操作webbrowser控件,也就是说,webbrowser控件支持多线程吗?

请问delphi中如何在多线程环境下操作webbrowser控件,也就是说,webbrowser控件支持多线程吗?大侠能否给段代码演示一下,我webbrowser一闪就没... 请问delphi中如何在多线程环境下操作webbrowser控件,也就是说,webbrowser控件支持多线程吗?
大侠能否给段代码演示一下,我webbrowser一闪就没有了,不知道,为什么,
多谢大侠的帮助,好人一生平安啊,呵呵,基本代码如下:
procedure TMyThread.Execute;
var WebBrowser: TWebBrowser;
begin
activex.CoInitialize(nil);
try
WebBrowser := TWebBrowser.Create(form1);
WebBrowser.Silent:=true;
WebBrowser.ParentWindow:=form1.Handle;
WebBrowser.OnDocumentComplete := form1.proDocumentComplete;
WebBrowser.Navigate('http://www.baidu.com');
Application.ProcessMessages;
WebBrowser.Show;
except
WebBrowser.Destroy;
end;
activex.CoUninitialize();
end;
展开
 我来答
mit1208
2011-08-10 · TA获得超过2347个赞
知道大有可为答主
回答量:2743
采纳率:0%
帮助的人:1857万
展开全部
可以创建若干个线程,动态也创建若干个webbrowser控件.一个线程操作一个webbrowser
也可以多个线程操作一个webbrowser,但是要注册在使用webbrowser进行同步.同一时间内要保证只有一个线程在访问webbrowser控件!
追问
希望大侠看下我的问题补充,再帮我解答一下,谢谢^_^
追答
因为它的执行片已经执行完了,当然一闪就没了!
还有你对线程没有了解.
在操作VCL控件的时候要注册同步的!
你这是创建了一个线程还是多个线程呢?
如果可以把代码给我发过来一份吧,我帮你修改下
yusheng628
2011-08-16 · 超过16用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:54.3万
展开全部
帮你修改了一下,下回注意操作VCL要用Synchronize,顺便帮你删掉了一些无用的语句
procedure TMyThread.Execute;
begin
Synchronize(run);
end;

procedure TMyThread.run;
var WebBrowser: TWebBrowser;
begin
activex.CoInitialize(nil);
try
WebBrowser := TWebBrowser.Create(form1);
WebBrowser.Silent:=true;
WebBrowser.ParentWindow:=form1.Handle;
WebBrowser.OnDocumentComplete := form1.proDocumentComplete;
WebBrowser.Navigate('http://www.baidu.com');
//Application.ProcessMessages; 不需要
//WebBrowser.Show; 不需要
except
WebBrowser.Destroy;
end;
activex.CoUninitialize();
end;

在XP SP3 Delphi XE下测试通过
好用记得加分哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友33c323b
2011-08-11
知道答主
回答量:61
采纳率:0%
帮助的人:48.7万
展开全部
webbrowser 有bug 多线程不稳定,经常报错,或者无故退出.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式