Семейства PrivateFontCollection ненадежны при большем количестве итераций.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Семейства PrivateFontCollection ненадежны при большем количестве итераций.

Сообщение Anonymous »

Я загрузил MemoryStream в PrivateFontCollection и распечатал количество шрифтов.

Я проделывал этот процесс 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;
}
Ожидаемый результат для 10 раз:

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Загрузка семейства шрифтов с диска в PrivateFontCollection
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Нужна плавная кривая от lmfit в большем количестве точек данных.
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Параграф Inputtype, аналогичный тексту, на большем количестве строк
    Anonymous » » в форуме Javascript
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Странное время выполнения при меньшем количестве итераций цикла
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Решите двоичное матричное уравнение, обратимое в большем векторном пространстве, но не в ограниченном пространстве.
    Anonymous » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»