c# - 线程和网络浏览器控制

标签 c# multithreading thread-safety webbrowser-control

我对线程非常陌生。我开始这样的线程:

Thread t_main;
t_main = new Thread(main_building_stuff);
t_main.Start();

在某些时候,我希望在 main_building_stuff 中从加载到主线程中的网络浏览器控件中的网页中获取一些数据。

我正在用这段代码来做到这一点:

HtmlElement lit = webBrowser1.Document.GetElementById("buildqueue");

但这会导致错误...... InvalidCastException(指定的强制转换无效)

从网络浏览器接收数据的正确方法是什么?

最佳答案

有人回答了这个问题,给出了正确的答案。但由于某种原因,他删除了它,所以谢谢你,但我不记得你的名字......

这是一段有效的代码:

webBrowser1.Invoke(new Action(() => {
                    HtmlElement lit = webBrowser1.Document.GetElementById("buildqueue");
                    result = "whatever";
                }));

关于c# - 线程和网络浏览器控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12386071/

相关文章:

c# - C# 中的 Windows 应用程序支持 gif 动画吗?

c# - 我的上下文不是从 Entity Framework Core 中的 DbContext 继承的

iphone - cancelPreviousPerformRequestWithTarget 不会取消我之前使用 PerformSelector 启动的延迟线程

java - 在 x86 上比较和交换 - 为什么它是一个完整的障碍?

java - Java 中使用堆栈的生产者-消费者

c# - StreamReader ThreadSafe问题?可能吗?

python - 使用 Flask 时如何安全地写入文件?

c# - xamarin.forms 将 listview-imagecell 图像源绑定(bind)到 byte[]

c# - 为什么 C# 没有相当于 python 的 doctest 功能?

c++ - 从 GCC 原子操作构建的轻量级自旋锁?