为什么我在“Main”中的任何内容运行之前我的线程都会退出?

时间:2016-03-05 20:02:43

标签: c# .net visual-studio

我有一个简单的控制台应用程序

using System;
using System.Drawing;
using System.Windows;
using System.Windows.Media;

namespace ConsoleApplicationFont
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("At least we got here");//TEST
            try
            {
                var FF = new FontFamily();
                foreach (var item in FF.FamilyNames.Keys) 
                    Console.WriteLine(item.ToString());
            }
            catch ( Exception e )
            {
                Console.WriteLine("Error: {0}", e.Message);
            }
        }
    }
}

目前正在输出

  

线程0x1b9c已退出,代码为259(0x103)。线程0x2438   已退出代码0(0x0)。线程0x444已退出代码   259(0x103)。线程0x21ec已退出代码259(0x103)。该   线程0x266c已退出,代码为259(0x103)。该计划' [7564]   SeeSystemDotDrawingFonts.vshost.exe'已退出代码0(0x0)。

并且输出与Main的主体没有任何关系,因为即使全部都是这样,我也能得到它。这里有什么问题,如何调试这些类型的情况?

1 个答案:

答案 0 :(得分:0)

我认为你正在寻找这样的东西:

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("At least we got here");//TEST
            try
            {
                var  installedFontCollection = new InstalledFontCollection();
                var fontFamilies = installedFontCollection.Families;
                var count = fontFamilies.Length;
                for (int j = 0; j < count; ++j)
                {
                    Console.WriteLine(fontFamilies[j].Name);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: {0}", e.Message);
            }
            Console.ReadKey();
        }
    }

https://msdn.microsoft.com/en-us/library/0yf5t4e8(v=vs.110).aspx