我搜索并尝试了我已经找到的每个答案,但我找不到这种确切的情况。
我有Class1
创建表单对象并使用Application.Run(Form1)
启动它。内部Form1
是我用来导航到网页的封装WebBrowser
对象。 Class1
由控制台命令控制。我正在尝试做的一个例子是:
这可能吗?我已经尝试过直接调用这些方法,但似乎Application.Run()阻止了控制台应用程序线程。
谢谢。
答案 0 :(得分:0)
@Mike是正确的this post是对这种技术的深入描述。我只是想补充一点,在您的特定情况下,您希望确保从控制台处理命令的任何进程作为对其中具有Web浏览器控件的表单实例的引用。
所以,像
CustomForm f = //get reference to web browser form
f.Invoke(() => { //whatever you want to do on the form's thread };
Invoke()确保lambda表达式中执行的任何内容都在表单/控件的线程上执行。