Utilisation des fonctions TPL : Task et Action
Bonjour,
J'ai actuellement du code que j'aimerai optimiser en terme de performance.
Je pensai utilisé les fonctions de paralléllisme Task et Action.
Je sais utilisé les fonctions Parallel.For et Parallel.Foreach. Cependant pour les fonction Task et Action, je suis bien paumé.
Voici le bout de code que j'aimerai optimisé :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
Byte[] Bmp = new Byte [X]
Byte[] Output = new Byte[Bmp.Length];
int max ;
int min;
int diffmax ;
int diffmin ;
max -= 127;
for (int i = 0; i < Bmp.Length; i++)
{
if (Bmp[i] > 127)
{
interm_1 = (Double)(Bmp[i] - 127);
adder = diffmax * ((interm_1 / max));
Output[i] = (byte)(Bmp[i] + (byte)(adder));
}
else
{
interm_2 = (Double)(127 - Bmp[i]);
lower = diffmin * (interm_2 / min);
if (min != 127)
Output[i] = (byte)(Bmp[i] - (byte)(lower));
else
Output[i] = (byte)(Bmp[i]);
} |
Le but est de réaliser un traitement sur les valeurs de Bmp et stocker celle ci dans Output. En sachant que Bmp est a une taille très importante.
Est ce que c'est une bonne solution?
Comment bien implémenté le code avec une méthode Task?
Merci de votre aide