Это ошибка в моногаме или я делаю что-то не так?
При запуске в задании / потоке. Это приведет к зависанию / зависанию OpenGL. (Отлично работает в DirectX). Хотя это не происходит все время. Мы используем подобный код для создания текстур из необработанных данных изображений в другой части программы. Там он отлично работает и находится в задании / потоке.
Задание, созданное:
List<Task> tasks = new List<Task>
{
Task.Run(() => Data.TryAdd(SectionName, Dataobj.Create(new Rectangle(0, 500, (int)Size.X, 124))))
}
Зависит либо SetData
, либо new Texture2D
. Протестировано перемещением новой texture2d в основной поток.
Texture2D localdot = new Texture2D(Memory.graphics.GraphicsDevice, 4, 4);
Color[] tmp = new Color[localdot.Height * localdot.Width];
for (int i = 0; i < tmp.Length; i++)
tmp[i] = Color.White;
localdot.SetData(tmp);
Часть, где я ожидаю завершения.
if (!Task.WaitAll(tasks.ToArray(), 10000))
throw new TimeoutException("Task took too long!");