我正在 C#中编写一个库,允许我将HTML转换为PDF 。显然这个想法是它是跨平台的,为什么我用单声道做。为此,我必须使用System.Drawing.Text.PrivateFontCollection
类加载Seller字体。
当应用程序完成所有代码的执行时,应用程序意外退出。经过多次测试后,我意识到问题出在调用 Dispose方法System.Drawing.Text.PrivateFontCollection
或调用Dispose()
的{{1}}时。
此问题出在 Windows (我有Windows 7 32位), linux我没问题。
这是测试代码
System.Drawing.FontFamily
答案 0 :(得分:0)
您总是致电Dispose
?
使用非托管资源时,您需要始终致电Dispose
。
调用Dispose的另一种方法是使用using
关键字...
示例(在运行此操作之前,请在您的电脑上重新启动以确保已释放所有资源):
using System;
using System.Drawing.Text;
using System.IO;
using System.Runtime.InteropServices;
using System.Drawing;
namespace FORM
{
class MainClass
{
public static void Main (string[] args)
{
using (PrivateFontCollection pf = new PrivateFontCollection())
{
IntPtr fontBuffer = IntPtr.Zero;
pf.AddFontFile("C:\\Windows\\Fonts\\times.ttf");
Font f = new Font(pf.Families[0], 12, FontStyle.Regular);
}
Console.WriteLine("Hello World!");
Console.ReadLine();
}
}
}