短時間で使用できるフォントを多数作成しています。フォントはドキュメントに埋め込まれます。もう使用しない場合は、フォントファイルを削除したい。どうすればこれを行うことができますか?次の単純化されたコードは機能しません。
PrivateFontCollection pfc = new PrivateFontCollection();
pfc.AddFontFile(fontFile);
FontFamily family = pfc.Families[0];
Console.WriteLine(family.GetName(0));
family.Dispose();
pfc.Dispose();
GC.Collect();
GC.WaitForPendingFinalizers();
File.Delete(fontFile);
ファイルがロックされているため、ファイルの削除に失敗しています。ファイルロックを解除するために他に何ができますか?
PS: AddMemoryFont を使用する前に。これは Windows 7 で機能します。ただし、Windows 8 .NET では、最初の FontFamily が破棄された後に間違ったフォント ファイルを使用します。すべての Document には他のフォントを含めることができるため、膨大な数のフォントが必要であり、すべてへの参照を保持することはできません。