c# - 为什么我的 C# 应用程序在多线程单元上运行?

标签 c# .net visual-studio-2010

这是我的主要方法的一部分:

[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/

相关文章:

c# - 对已分配的字符串使用未分配的局部变量错误

c# - 如何用新的 ISerialized 类替换旧类

c# - 为以大写字母开头的gridview的所有单元格值添加背景色

c# - 代码无法识别 xaml 中的名称 View (Xamarin Forms Visual Studio 2015)

.net - 如何在插件场景中实现程序集绑定(bind)重定向?

c# - 使用 LINQ 删除重复项会返回 "Error removing duplicates: Unable to cast object of type ' System.Int3 2' to type ' System.String'。”

visual-studio-2010 - 在 Visual Studio 2010 中编辑自动完成设置

html - 是否有使用 Razor 生成静态 HTML 页面的示例?

c# - 如何读取加载到内存中的模块的 PE header ?

visual-studio-2010 - system.diagnostics.contracts.contract 在 v4.0 v3.5 中都存在