Поэтому я разработал очень эффективную систему обнаружения столкновений, но проблема в том, что она по-прежнему не может работать в основном потоке, поскольку она чертовски медленная.
Я попытался настроить потоки, и если поток заканчивается, создается другой поток.
if (doneCollisions)
{
PopulateGrid();
}
if (doneCollisions)
{
Thread thread = new Thread(new ThreadStart(CheckCollisionsGrid));
thread.Start();
}
void CheckCollisionsGrid()
{
Thread.CurrentThread.SetProcessorAffinity(3);
doneCollisions = false;
//Increments through all the grids.
.
.
.
doneCollisions = true;
}
Теперь я заметил странное поведение при отладке. Когда я вызвал Thread.SetAffinity, он несколько раз возвращался к нему снова и снова, прежде чем, наконец, начал фактически проверять коллизии.
И теперь мои столкновения задерживаются на 5-10 секунд ...
Если у кого-то есть понимание, пожалуйста, введите сюда.