cs_necrid
Messages postés5Date d'inscriptionmardi 31 janvier 2006StatutMembreDernière intervention 5 avril 2006
-
5 avril 2006 à 20:24
guyom38
Messages postés1Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention14 octobre 2009
-
14 oct. 2009 à 11:53
Salut tout le monde,
dans mon code, j'utilise LockBits et UnlockBits dans un thread, mais il y a une erreur recurrente qui apparait. Le code a a peu prés la structure suivante :
private
void Thread1()
{
Bitmap outPic;
BitmapData BoutPic =
null;
Byte* oBase =
null;
outPic =
new System.Drawing.
Bitmap(Largeur, Hauteur);
while (
true)
{
outPic = inPic;
BoutPic = outPic.LockBits(
new
Rectangle(0, 0, Largeur, Hauteur),
ImageLockMode.ReadOnly,
PixelFormat.Format24bppRgb);
oBase = (
Byte*)BoutPic.Scan0.ToPointer();
/***********/
Plein de trucs ICI
/***********/
outPic.UnlockBits(BoutPic);
}
}
Le problème est que au bout d'un certain nombre d'itération de la boucle while, une erreur survient disant que la région est déja vérouillée, alors que je la dévérouille régulièrement.
outPic =
new System.Drawing.
Bitmap(Largeur, Hauteur);
while (
true)
{
outPic = inPic;
LockTest = false;
while (LockTest ==
false)
{
try
{
BoutPic = outPic.LockBits(
new
Rectangle(0, 0, Largeur, Hauteur),
ImageLockMode.ReadOnly,
PixelFormat.Format24bppRgb);
LockTest =
true;
}
catch (System.
Exception e)
{
BoutPic =
null;
}
}
oBase = (
Byte*)BoutPic.Scan0.ToPointer();
/***********/
Plein de trucs ICI
/***********/
outPic.UnlockBits(BoutPic);
}
}
Ca marche alors en mode debug, mais en éxecution sans debug, l'erreur survient beaucoup plus souvent qu'en mode débug (étrange non ?!), ce qui fait tourner la boucle while(LockTest == false) pendant quelque dixièmes de seconde parfois, ce qui ralentit mon programme et me gène beaucoup !
Pourquoi le résultat est-il différent en debug et en normal ?
Quelqu'un aurait-il une soluce efficace à proposer ?
guyom38
Messages postés1Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention14 octobre 2009 14 oct. 2009 à 11:53
Salut actuellement sur VB.NET 2008 Express
J'ai le meme message !
Thread !
Avec traitement et affichage dans picturebox !
Ca marche ... mais desque je bouge la fenetre avec mon bitmap qui se raffraichit en dehors de l'écran et que je le ramene ! AIE !!!
Région bitmap déjà verrouillée.
J'ai l'impression que la FORM verrouille ou raffrachit la fenetre et donc plante mon prog.
Si t'as trouvé, je suis preneur !!!
Merci d'avance.