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

时间:2013-03-06 13:20:31

标签: c# multithreading thread-safety visual-studio-debugging apartment-state

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

这是我的应用程序入口点的屏幕截图,其中我显示主线程[STAThreadAttribute]属性的值并尝试将其更改为STA(我不在我的应用程序中执行此操作,它只是为了显示什么如果有人建议以编程方式更改它,则会发生:

The ApartmentState property of the main thread is set to MTA

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

Debug properties of my application

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

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

谢谢

0 个答案:

没有答案