我有一个奇怪的问题,我一直无法找到解决方案。
基本上,我有一个控制台应用程序。它接受命令,我从中确定 Action 。所有的操作都涉及打开一个表单并显示一些东西。
目前,我能够输入一个命令,它正确地确定了 Action 并弹出了一个表单,一切都很好。 不幸的是,在这样做的过程中,表单后面的控制台基本上卡住了(我已经意识到它只是不再更新用户界面) - 所以如果我尝试在打开表单时键入另一个命令,什么都不会发生,直到我关闭表格。
我一直在考虑为要运行的表单创建一个新线程,我猜测是我需要采取的路径 - 但我无法弄清楚如何做到这一点,而不是导致错误(例如,从一个单独的线程错误中讨厌的非法访问)。
有人可以帮忙吗?
我是否应该放弃并从一开始就设置一个表单,并通过表单上的文本框输入我的命令? (看起来很烦人,但至少我有一个可以调用其他东西的表单)
最佳答案
您可以像这样在另一个线程中从控制台应用程序打开表单:
var t = new Thread(() => {
var f = new Form();
f.ShowDialog();
});
t.SetApartmentState(ApartmentState.STA);
t.Start();
关于c# - 从控制台在新线程上创建表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41262843/