无法在C#Windows应用程序主程序中将当前线程单元设置为STA

无法在C#Windows应用程序主程序中将当前线程单元设置为STA,c#,multithreading,thread-safety,visual-studio-debugging,apartment-state,C#,Multithreading,Thread Safety,Visual Studio Debugging,Apartment State,我在Visual Studio 2010中创建了一个小型Windows应用程序项目,无法将主线程的单元属性设置为STA,默认情况下,它设置为MTA,即使在主方法上使用属性[STAThread]或[STAThreadAttribute]。 这导致在显示窗体并更改其控件属性时引发异常 这里是我的应用程序入口点的屏幕截图,我在这里显示主线程ApartmentSate属性的值,并尝试将其更改为STA(我在应用程序中不这样做,它只是显示万一有人建议按语法更改它时会发生什么): 下面是调试部分中我的应用程

我在Visual Studio 2010中创建了一个小型Windows应用程序项目,无法将主线程的单元属性设置为STA,默认情况下,它设置为MTA,即使在主方法上使用属性
[STAThread]
[STAThreadAttribute]
。 这导致在显示窗体并更改其控件属性时引发异常

这里是我的应用程序入口点的屏幕截图,我在这里显示主线程
ApartmentSate
属性的值,并尝试将其更改为STA(我在应用程序中不这样做,它只是显示万一有人建议按语法更改它时会发生什么):

下面是调试部分中我的应用程序属性的屏幕截图:

我不明白,因为我没有离开主线。 你知道这个问题的根源是什么吗?我如何解决它

编辑:如果禁用“启用Visual Studio宿主进程”选项,
ApartmentSate
属性将正确设置为STA。这是避免问题的最佳方法,还是我可以用更好的解决方案来解决这个问题


谢谢

奇怪的问题,但看起来可能会有所帮助。