【问题标题】:Why am I getting that my thread exits before anything in `Main` can run?为什么我的线程在“Main”中的任何内容可以运行之前就退出了?
【发布时间】:2016-03-05 20:02:43
【问题描述】:

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

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 的主体没有任何关系,因为即使它全部输出我也能得到它。这里有什么问题,我该如何调试这些类型的情况?

【问题讨论】:

  • 后台会有很多线程 - 一个用于终结器等 - 我不会担心它们
  • 我认为你在错误的地方寻找你的输出......呵呵......
  • 来自 MSDN:“当您想以编程方式创建复合字体时,请使用此默认构造函数。这意味着您不必为构造函数指定字体系列名称,但您必须将集合填充到在使用构造的实例之前的 FamilyMaps 和 FamilyNames 集合。” msdn.microsoft.com/en-us/library/ms602322%28v=vs.110%29.aspx
  • 我预计会出现编译器警告,因为 FontFamily 是在 System.Drawing 和 System.Windows.Media 中定义的
  • @devio 不是警告,错误。此代码无法编译

标签: c# .net visual-studio


【解决方案1】:

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

    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

【讨论】:

    猜你喜欢
    • 2020-08-03
    • 2015-04-26
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多