当前位置:  开发笔记 > 编程语言 > 正文

WPF与Windows窗体 - STAThread

如何解决《WPF与Windows窗体-STAThread》经验,为你挑选了1个好方法。

我是WPF的新手,并且有关于WPF和Windows Forms集成的几个问题.

我有一个现有的Visual C#Windows窗体应用程序.我想将它与WPF窗口集成,可以通过单击按钮显示.这是不可能的,因为WPF期望调用线程是一个STAThread,默认情况下WinForm假定该线程是一个MTAThread.我尝试使用公寓状态STAThread生成一个新线程来调用WPF UI,但这不起作用.我尝试使用Dispatcher.BeginInvoke方法和后台工作程序,但没有一个解决了这个问题.

1)我们可以调用WPF窗口/控件而不将Main标记为STAThread吗?如果有可能,有人可以指出我正确的方向吗?2)如果实现此目的的唯一方法是使主线程成为STAThread,那么对应用程序的一般性能/响应性是否会产生任何影响.

提前致谢.



1> JaredPar..:

我认为最简单的解决方案是让你的WinForms线程在STA中执行.拥有一个STA线程winforms应用程序没有任何问题(实际上它通常是默认值).

您可以通过将以下行添加到程序的main方法来解决此问题:

[STAThreadAttribute]
static void Main(string[] args)

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有