替代.net中的跨线程调用

时间:2012-08-18 12:00:57

标签: .net backgroundworker

我正在开发一个有4个面板的应用程序。第一个面板显示静态图像,第二个面板加载网页。由于我将按顺序导航,我想在实际访问之前在第二个面板中加载网页。怎么实现呢?使用新线程或后台工作程序是不可能的,因为它们不是线程安全的。有没有更好的方法呢?如何加载网页而不冻结我的UI,是否可以在我实际访问它之前加载它?正如我所说的那样?

2 个答案:

答案 0 :(得分:2)

这里没有选项,WebBrowser类基本上是线程不安全的,并且具有硬线程关联性。有办法在单独的线程上运行它,this answer向您展示如何。但只要您需要它来在UI上呈现页面内容,那么必须编写异步代码。无论您做什么,都必须在DocumentCompleted事件处理程序中实现。一个简单的状态机可以创造奇迹。

答案 1 :(得分:-1)

Dispatcher.BeginInvoke(the_method_loading_the_page)

应该修理它。

相关问题