这是我的主要方法的一部分:
[STAThread]
static void Main(string[] args)
{
#if !DEBUG
try
{
#endif
ApartmentState aps = System.Threading.Thread.CurrentThread.GetApartmentState();
//System.Threading.Thread.CurrentThread.SetApartmentState(ApartmentState.STA);
MessageBox.Show(aps.ToString());
邮件显示 MTA
。知道为什么或从哪里开始调查吗?
最佳答案
您只是好奇,还是引起了其他问题?通常只有在您尝试在 main 方法中进行某些类型的 COM 交互时才会出现问题。 Windows 仍将在适当的 ApartmentState 中运行。
最近没查过,以前是不管属性,Visual Studio强制MTA。您是否尝试过从 Visual Studio 外部运行您的应用程序?
如果这只是调试器中的问题,请取消选中项目属性的“调试”部分下的“启用 Visual Studio 托管进程”。
关于c# - 为什么我的 C# 应用程序在多线程单元上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7279471/