关于Webbrowser的线程问题

祝福灵魂 2014-07-18 08:25:12


Webbrowser ws=new Webbrowser();
ws.Navigate("[URL]");
ws.DocumentComplet+=(sender,e)=>
{
代码区域
};
System.Thead.Sleep(1000);



我想知道Navigate这个方法是同步的还是异步的,还有代码区内的是运行在主线程还是Webbrowser新开了一个线程,Sleep方法是否阻塞了《代码区域》

因为我想知道怎么样才能在运行完<代码区域> 后执行Sleep()方法,如果这是一个命令窗口,就会直接退出
请各位指教
...全文
160 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
祝福灵魂 2014-07-18
  • 打赏
  • 举报
回复
引用 6 楼 Z65443344 的回复:
不是已经订阅了事件ws.DocumentComplet么 你在事件里写后续的代码啊. 这里订阅的事件就不要写成匿名函数了.
你可能還沒理解我的意思,我的意思是 如果我是一個控制臺命令程序,如果直接寫到DocumentComplet裏面去,DocumentComplet裏面的是異步的,就是說不會等到DocumentComplet代碼完成,程序就直接退出了,我想要的效果是,要等到DocumentComplet裏面的代碼完成了,再玩下執行
於黾 2014-07-18
  • 打赏
  • 举报
回复
不是已经订阅了事件ws.DocumentComplet么 你在事件里写后续的代码啊. 这里订阅的事件就不要写成匿名函数了.
祝福灵魂 2014-07-18
  • 打赏
  • 举报
回复
引用 3 楼 lzp_lrp 的回复:
[quote=引用 2 楼 g767160 的回复:] [quote=引用 1 楼 wangnaisheng 的回复:] http://msdn.microsoft.com/zh-cn/library/system.windows.controls.webbrowser.navigate.aspx 异步方法
既然是异步,那就是说如果调用Sleep方法,代码区域 中的代码还是继续执行下去的,但是我做过试验,调用了Sleep()方法后,代码区域 也被阻塞,请教是为什么?[/quote] 是异步调用,但不是多线程,主线程阻塞时,代码也会被阻塞[/quote] 那对于这个例子,有什么办法等到 代码区域 的代码运行完了,才继续往下执行?
小K的大师兄 2014-07-18
  • 打赏
  • 举报
回复
是异步调用 你用当前线程去调用他 接着把当前线程给阻塞了 那么代码区域里面的也会被阻塞。
WorldMobile 2014-07-18
  • 打赏
  • 举报
回复
引用 2 楼 g767160 的回复:
[quote=引用 1 楼 wangnaisheng 的回复:] http://msdn.microsoft.com/zh-cn/library/system.windows.controls.webbrowser.navigate.aspx 异步方法
既然是异步,那就是说如果调用Sleep方法,代码区域 中的代码还是继续执行下去的,但是我做过试验,调用了Sleep()方法后,代码区域 也被阻塞,请教是为什么?[/quote] 是异步调用,但不是多线程,主线程阻塞时,代码也会被阻塞
祝福灵魂 2014-07-18
  • 打赏
  • 举报
回复
引用 1 楼 wangnaisheng 的回复:
http://msdn.microsoft.com/zh-cn/library/system.windows.controls.webbrowser.navigate.aspx 异步方法
既然是异步,那就是说如果调用Sleep方法,代码区域 中的代码还是继续执行下去的,但是我做过试验,调用了Sleep()方法后,代码区域 也被阻塞,请教是为什么?

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧