我們爲短時間使用創建大量的字體。字體嵌入在文檔中。我想刪除字體文件,如果不再使用。我們應該怎麼做?以下簡化代碼不起作用:如何刪除PrivateFontCollection.AddFontFile的文件?
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一起工作。但是,在第一個FontFamily被處置後,Windows 8 .NET使用錯誤的字體文件。因爲每個文檔都可以包含其他字體,所以我們需要大量的字體,並且不能容納所有字體。
新增連接錯誤https://connect.microsoft.com/VisualStudio/feedback/details/1379843 – Peter 2015-05-29 14:00:28