我的c#项目中有五个表单。一个主持一个我希望连续运行的httplistener。当侦听器收到消息时,它会将其传递给静态类,静态类又调用适当的表单进行另一次处理。
静态类是否可能在新线程中调用新表单?如果是这样请帮帮我
答案 0 :(得分:1)
表单中的代码应该只处理表单的可视方面。任何其他内容,尤其是http侦听器,都应该使用在后台线程上运行的单独类来处理。
答案 1 :(得分:1)
“调用表单”并不意味着什么,我想你只想显示()它。在工作线程上创建表单从不是一个好主意。即使您确实获得了正确的线程状态(STA和消息循环),您也将难以解决Z顺序和模态问题。
只需使用Control.Invoke在UI线程上运行代码即可。它应该创建表单并调用它的Show()方法。
答案 2 :(得分:0)
正如汉斯所说,可能不推荐,但如有必要,您可以从任何主题调用System.Windows.Forms.Application.Run()
。如果你这样做的话,要小心并知道你在做什么。