Я проделывал этот процесс 10 раз и хочу, чтобы результат был одинаковым для каждой итерации. Мне нужен правильный результат для двух итераций, но иногда первая итерация тоже идет не так. У меня не получается согласованный вывод.
Предложите мне решение, позволяющее обеспечить согласованный вывод с помощью PrivateFontCollection.
Примечание:< /strong> Папка Fonts содержит 5 разных шрифтов.
Код: Выделить всё
private static void Work()
{
string fontPath = @"D:\fonts";
PrivateFontCollection fontCollection = null;
for (int i = 1; i < 11; i++)
{
var fileList = Directory.GetFiles(fontPath, "*.ttf", SearchOption.TopDirectoryOnly);
fontCollection = SafeLoadFontFamily(fileList);
Console.WriteLine(i+" Iteration and families count:"+fontCollection.Families.Length);
fontCollection.Dispose();
}
Console.ReadKey();
}
private static PrivateFontCollection SafeLoadFontFamily(IEnumerable fontList)
{
if (fontList == null) return null;
var fontCollection = new PrivateFontCollection();
foreach (string fontFile in fontList)
{
if (!File.Exists(fontFile)) continue;
byte[] fontBytes = File.ReadAllBytes(fontFile);
var fontData = Marshal.AllocCoTaskMem(fontBytes.Length);
Marshal.Copy(fontBytes, 0, fontData, fontBytes.Length);
fontCollection.AddMemoryFont(fontData, fontBytes.Length);
}
return fontCollection;
}
1. Число итераций и семейств: 5.
2. Число итераций и семейств: 5
3 Число итераций и семейств: 5
4 Число итераций и семейств: 5
5 Число итераций и семейств: 5
6 Количество итераций и семейств: 5
7 Количество итераций и семейств: 5
8 Количество итераций и семейств: 5
9 Количество итераций и семейств: 5
10 Количество итераций и семейств: 5
Фактический результат: [несогласованный результат]
1 Количество итераций и семейств: 5
2 Количество итераций и семейств: 5
3 Количество итераций и семейств: 5
4 Количество итераций и семейств: 5
5 Количество итераций и семейств: 4
6 Количество итераций и семейств: 3
7 Количество итераций и семейств :3
8 Количество итераций и семейств: 4
9 Количество итераций и семейств: 4
10 Количество итераций и семейств: 4
Подробнее здесь: https://stackoverflow.com/questions/572 ... iterations