我正在运行一个命令行应用程序,我想向它添加一个可选的表单,以可视化后台发生的事情。主要是看看是否一切都按预期工作,因为最终产品将链接到另一个程序与它自己的接口。
我的问题是如何做到这一点,而不中断主线程。
当前代码:
var stuff = CreateStuff();
Visualization visualization = new Visualization(stuff); //Visualization is my subclass of Windows.Form
Application.EnableVisualStyles();
Application.Run(visualization);
stuff = UpdateStuff(stuff);
只要应用程序是打开的,最后一行就不会到达,因此我提出了这个问题。
具体来说,我希望可视化在代码运行时继续更新stuff
内部发生的事情的可视化。(如果可能的话,甚至在我单步执行代码时也是如此。)
1条答案
按热度按时间kg7wmglp1#
1.将可视化代码移动到一个单独的方法,比如
void ShowUI()
。1.在后台线程上运行ShowUI:
请注意,这个UI线程将不会与您的“主线程”相同。您还需要确保all UI updates run on the UI thread。
但不清楚你所说的“链接到另一个程序”是什么意思。理想情况下,您应该让您的测试UI使用与第三方程序相同的API,无论该API是什么。