Я использую чужой .NET 4 с открытым исходным кодом сглаживаемый код гидродинамики частиц, и я пытаюсь преобразовать его в проект Unity, на который вы можете рассчитывать только на .NET. 2. К сожалению, в коде используется класс Parallels (что здорово!), Но он использовал одну из более неясных перегрузок. Может ли кто-нибудь увидеть хороший способ добиться того же в .NET 2 без огромного успеха?Преобразование .NET 4 Threading в .NET 2
Parallel.For(
0,
_numActiveParticles,
() => new Vector2[MAX_PARTICLES],
(i, state, accumulatedDelta) => calculateForce(_activeParticles[i], accumulatedDelta),
(accumulatedDelta) =>
{
lock (_calculateForcesLock)
{
for (int i = _numActiveParticles - 1; i >= 0; i--)
{
int index = _activeParticles[i];
_delta[index] += accumulatedDelta[index]/MULTIPLIER;
}
}
}
);
Я думаю это то, что делает код (Non Резьбовые):
for (int i = 0; i < _numActiveParticles; i++)
{
Vector2[] temp = new Vector2[MAX_PARTICLES];
temp = calculateForce(_activeParticles[i], temp);
for (int k = _numActiveParticles - 1; k >= 0; k--)
{
int index = _activeParticles[k];
_delta[index] += temp[index]/MULTIPLIER;
}
}
Вы могли бы найти это полезным http://stackoverflow.com/q/12386686/809009 –
@OndrejJanacek Спасибо, что это но я также не уверен на 100%, что делает версия Parallels, поэтому я хочу, чтобы я правильно ее переводил. – PorcupineRending
Я не думаю, что ваше понимание правильное. Вы даже не используете переменную temp. Прочтите это: http://msdn.microsoft.com/en-us/library/ff963547.aspx –