begin process at 2010 02 10 05:34:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Multimédia

 > 

Problème de region déja verouillée avec LockBits.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de region déja verouillée avec LockBits.

mercredi 5 avril 2006 à 20:24:09 | Problème de region déja verouillée avec LockBits.

necrid

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.

En faisant la modif suivante :

private void Thread1()

{

   Bool LockTest;
   Bitmap
outPic; BitmapData BoutPic = null;

   Byte* oBase = null
   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 ?

merci pour les réponses !
mercredi 14 octobre 2009 à 11:53:32 | Re : Problème de region déja verouillée avec LockBits.

guyom38

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.


Cette discussion est classée dans : while, outpic, boutpic, lockbits, locktest


Répondre à ce message

Sujets en rapport avec ce message

While...Wend [VB] en c# [ par abder ] Je cherche si il existe un equvalent de la boucle While ...Wend [VB] en C# Multi threading en while(true) sur un objet [ par Sobieski ] Salut,J'ai un petit problème.J'ai deux taches à faire en même temps, des taches d'écoute en boucle infinie while(true).J'ai donc décidé d'en faire cha Objets et incrémentation [ par Machjaghjolu ] Salute, J'aimerai savoir comment faire +1 à mon nom de variable ? Je n'arrive pas à expliquer donc je vous montre en exemple: Je créé une boucle Whi Ca marche...qu'avec un point d'arret ! [ par zigxag ] Bonjour !je sollicite votre aide car là je ne vois plus de solution à mon probleme...J'ai mis en place une communication client/server par socket, en créer un control dans une boucle [ par maitesn1 ] salut tout le monde,je voudrai savoir comment faire pour créer, par exple un texBox dans une boucle for ou while.Mon probleme est que je n'arrive pas évenement dans un bouton [ par maitesn1 ] Bonjour tout le monde,je souhaiterai associer un evenment click a des boutons qui sont créés au fur et a mesure qu'on parcourt une boucle while.Je vou boucle while et condition if [ par Cybersnap ] Bonjour à tous,  je réalise un programme de poker pour la fin de l'année mais je cale sur un point ou je dois verifier si les joueurs on une paire.voi Problème avec une boucle for et while [ par filipegomes ] Bonjour,J'appel à votre expérience pour avoir une petite aide. J'ai un problème avec mes boucles for et while. Tout d'abord le code. <font une boucle while dans un service [ par Dr_shaman ] Bonjour, juste une petite question ? J'ai fais un programme en winform C#. Ce programme comporte une boucle qui boucle à l'infini car j'attends des


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales