PureBasic

Forums PureBasic
Nous sommes le Mer 22/Mai/2013 19:37

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 25 messages ]  Aller à la page 1, 2  Suivante
Auteur Message
 Sujet du message: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Sam 05/Mar/2011 17:13 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5221
Décidément ces thread me gonflent, ça fait encore plusieurs jours que je me prends le choux avec ça alors que le programme en lui même marche.
Je pensais m'en être sorti dans ce topic mais que nenni !
Alors j'ouvre ce fil de discussion pour ce soucis précis.

But du programme
- Redimensionner par Lot en "glisser/déposer" de dossiers contenant des images jpg.
Ex : dossier1/toto.jpg deviendra dossier1/dossier1/1.jpg et ainsi de suite
Pour ce qui est de cette partie du code, aucun soucis.

Mon problème
Faire fonctionner Procedure Clignote(*cacahuet) en thread pendant que le soft redimensionne.

Je souhaite donc faire apparaitre le numéro de l'image en cours de traitement pendant le traitement.
Puis que le thread se coupe (ou se pause) jusqu'à la prochaine opération de glisser/deposer

J'ai viré ou commenté tout ce qui touchait aux thread et n'ai laissé que la procédure

Voilà le code :
Code:
  ;Resizier par Ar-S -2009 // PB 4.30
;2011 - PB 4.51 taille relative
; redimensionnement relatif d'images basé sur X:1024 et Y:768
; Si une image est plus large que haute, le redimmensionement se basera sur X
; et inversement.

UseJPEGImageEncoder()
UseJPEGImageDecoder()

Enumeration
  #IMG : #AFF
EndEnumeration

Global TailleL.l=1024
Global TailleH.l=768
Global L.l,H.l,Limg.l,Himg.l,NumDir.q,pos.b,Son.l
Global DernierDossier$,NouveauRep$,car$,fin,Repertoire$
Global v$=" v1.03"
Global QuiteThread.l
Global NBRfich.l
Global NewList LesFichiers.s()

QuiteThread=0
CREATION=1
Son=4

; ;--------------------------------
; ;- INITIALISATION DU SON .. ou pas
; ;--------------------------------
; If InitSound   () <>0 ; On ne va pas charger le fichier son si le son n'est pas initialisé sur la machine..
  ; PlaySon=#True
  ; If CatchSound ( Son , ?chimes_wav_Start , ?chimes_wav_End) = 0
    ; PlaySon=#False
  ; EndIf
; Else
  ; PlaySon=#False
; EndIf

;--------------------------------
;- LES PROCEDURES
;--------------------------------
 
Procedure Clignote(*cacahuet)
  Debug "Je suis lancé"
  Static mode=0
  Repeat
    Debug "NBR FICH : "+Str(NBRfich)
    While ListIndex(LesFichiers())+1<NBRfich
      Select mode
        Case 0
          SetGadgetText(#AFF,"* Traitement en cours image > "+Str(ListIndex(LesFichiers())+1))
        Case 1
          SetGadgetText(#AFF,"* Traitement en cours image >>> "+Str(ListIndex(LesFichiers())+1))
      EndSelect
      mode = 1-mode
      Delay(100)
      Debug Str(ListIndex(LesFichiers())+1)+"/"+Str(NBRfich)
    Wend
  Until QuiteThread=1
  Debug "Je suis eteind"
EndProcedure
   
Procedure CompteFichiers(dir)
  Repertoire$=EventDropFiles()
  Debug "Repertoire droppé : "+Repertoire$
  NBRfich=0
  ClearList(LesFichiers())
  If ExamineDirectory(dir, EventDropFiles(), "*.jpg")
    While NextDirectoryEntry(dir)
      If DirectoryEntryType(dir) = #PB_DirectoryEntry_File
        fichier$=DirectoryEntryName(dir)
        If LCase(GetExtensionPart(fichier$))="jpg" Or LCase(GetExtensionPart(fichier$))="jpeg" ; histoire d'être sur de chopper toutes les images
          AddElement(LesFichiers())
          LesFichiers()=Repertoire$+"\"+fichier$
          Debug LesFichiers()
          NBRfich+1
          Debug "Nbr Fichier : "+Str(NBRfich)
        EndIf
      EndIf 
    Wend
    FinishDirectory(dir)
  EndIf
  ProcedureReturn NBRfich
EndProcedure

;--------------------------------
;- LE PROGRAMME
;--------------------------------

OpenWindow(0, 583, 629, 319, 23, "LDVM Redim 1024/768 relatif"+v$, #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
StickyWindow(0,1)
StringGadget(#AFF, 0, 0, 315, 20, "Glissez/déposez le dossier image ici",#PB_String_ReadOnly)
EnableWindowDrop(0, #PB_Drop_Files, #PB_Drag_Copy)

thread=CreateThread(@Clignote(),200)
; While IsThread(thread)
  ; Delay(1)
; Wend
 
  ;{- Boucle
Repeat
  Select WaitWindowEvent()
     
    Case #PB_Event_WindowDrop
      ;--------------------------------
      ;- ANALYSE DU REPERTOIRE
      ;--------------------------------
     
      Depart=ElapsedMilliseconds()
     
      CompteFichiers(NumDir)
     
      Debug "il y a "+Str(NBRfich)+" images jpg dans ce dossier"
      Debug "Taile liste : "+Str(ListSize(LesFichiers()))
      Debug "...."
     
      ; thread=CreateThread(@Clignote(),100)
      ; While IsThread(thread)
      ; Delay(1)
      ; Wend
     
      ;--------------------------------
      ;- RECUPERATION DU NOM DU DERNIER DOSSIER
      ;--------------------------------
      RepSav$=Repertoire$+"\"
      pos=1
      NumCar=Len(Repertoire$)
      Repeat
        car$=Right(Repertoire$,pos)
        While Left(car$,1)<>"\"
          pos+1
          car$=Right(Repertoire$,pos)
        Wend
      Until Left(car$,1)="\"
      DernierDossier$=Right(car$,pos-1)
      ; Debug "Dernier dossier : "+DernierDossier$
      ; SetClipboardText(DernierDossier$)
     
     
      ;--------------------------------
      ;- CREATION DU REPERTOIRE DESTINATION
      ;--------------------------------
      NouveauRep$=RepSav$+DernierDossier$+"\"
      Debug "Rep à créer : "+NouveauRep$
      ;On vérifie s'il existe
      Resultat.q = FileSize(NouveauRep$)
      Debug Resultat
      If Resultat <> -2 ; s'il ni a pas de repertoire on le créé
        nouveauRep=CreateDirectory(NouveauRep$)
        Debug NouveauRep$+" créé !"
      Else
        Debug NouveauRep$+" existe déjà :]"       
      EndIf
     
     
      ;--------------------------------
      ;- REDIMENSION ET SAUVEGARDE
      ;--------------------------------
     
      ResetList(LesFichiers())
      While NextElement(LesFichiers())
        Debug LesFichiers()
        charge=LoadImage(#IMG, LesFichiers())
        Debug "Chargement de l'image :"+LesFichiers()
        Limg=ImageWidth(#IMG)
        Himg=ImageHeight(#IMG)
        Debug "Image chargée ! X : "+Str(Limg)+"     Y : "+Str(Himg)
       
        ;- Calcule de la taille des images de destination.
        If Limg>Himg
          L=TailleL
          H=(Himg*TailleL)/Limg
          Debug " Resolution de sortie :"
          Debug " X : "+Str(L)+"         Y : "+Str(H)
        ElseIf Himg>Limg
          H=TailleH
          L=(Limg*TailleH)/Himg
          Debug " Resolution de sortie :"
          Debug " X : "+Str(L)+"         Y : "+Str(H)
         
        ElseIf Limg=Himg 
          H=TailleH
          L=TailleH ; H car doit faire la Hauteur en taille car les ecrans sont plus large que haut...
          Debug " Resolution de sortie :"
          Debug " X : "+Str(L)+"         Y : "+Str(H)
        Else
          Debug "erreur redimensionnement"
        EndIf
        ;- Redimensionnement de l'image
        ResizeImage(#IMG,L,H,#PB_Image_Smooth)
       
        ;- Sauvegarde de la nouvelle image
        NomNew$=Str(ListIndex(LesFichiers())+1)+".jpg"
        Debug "Nouveau nom : "+NomNew$
       
        Debug "Destination : "+NouveauRep$+NomNew$
        sauve=SaveImage(#IMG,NouveauRep$+NomNew$,#PB_ImagePlugin_JPEG ,8)
        If sauve=0
          SetGadgetText(#AFF,"Erreur Sauvegarde")
          Debug "Save Foireuse"
        Else
          Debug "Save OK"
          Debug "----------------------------"
        EndIf
        Delay(1)
      Wend
     
      ; ;--------------------------------
      ; ;- LECTURE DU SON DE FIN D'OPERATION
      ; ;--------------------------------
      ; If PlaySon=#True
        ; PlaySound (Son ,1)
        ; Delay (600)
        ; StopSound(Son)
      ; EndIf
     
      Arrivee=ElapsedMilliseconds()-Depart
      SetGadgetText(#AFF,"Terminé ! "+Str(NBRfich)+" images traitées dans "+DernierDossier$+" en "+Str(Arrivee)+" ms")
      NBRfich=0
      ClearList(LesFichiers())
      QuiteThread=1
     
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case 0
         
          CloseWindow(0)
          Break
      EndSelect
  EndSelect
ForEver
 

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Dernière édition par Ar-S le Sam 05/Mar/2011 19:10, édité 1 fois.

Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Sam 05/Mar/2011 17:19 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 2134
utilise des mutex() ?


Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Sam 05/Mar/2011 17:25 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5221
Je n'ai jamais essayé les mutex() et l'exemple de la doc ne me parle pas vraiment..

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Sam 05/Mar/2011 17:37 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 2134
Donne ta version avec les Threads.

en gros , un mutex , protège tes données ,
un thread , lui tourne en parallèle de ton programme principal , il tourne plus vite que ta boucle principale car lui à une tache plus simpliste ,
il accède tout comme ton programme principal à une zone mémoire ( liste chainée , variable , tableau , etc... )
si ta boucle principale , accède a une donnée par exemple une variable , et que ton thread lui aussi y accède , c'est le crash...

Citation:
Thread()
{

LockMutex()

Toto + 1

UnLockMutex()

}



CreateThread(Thread())


Repeat
{

LockMutex()
debug Toto ; <---- Le thred ne peut pas venir modifier toto , car le mutex est vérouillé !
UnLockMutex()


}


Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Sam 05/Mar/2011 19:12 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5221
J'ai remis le code en l'état en haut du topic (y'a qu'une lecture du son que j'ai viré car trop de datasection pour le son).
Vraiment je ne trouve pas le multithreading très accessible.

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Sam 05/Mar/2011 19:29 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 2134
Ton code est un peu fouillis , tu devrais "clignoté" dans ta boucle principal , puis redimensionné l'image dans ton thread.
le thread est pratique pour des taches lourdes , comme le traitement d'image. ;)


Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Sam 05/Mar/2011 20:47 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5221
Figure toi que je pensais me tourner vers cette direction.. Je vais essayer.

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Sam 05/Mar/2011 21:51 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5221
J'ai essayé d'inverser les processus, donc redimensionnement et sauvegarde en thread et affichage dans le "stringgadget" dans la boucle,
ça ne fonctionne pas plus..

Code:
;Resizier par Ar-S -2009 // PB 4.30
;2011 - PB 4.51 taille relative
; redimensionnement relatif d'images basé sur X:1024 et Y:768
; Si une image est plus large que haute, le redimmensionement se basera sur X
; et inversement.

UseJPEGImageEncoder()
UseJPEGImageDecoder()

Enumeration
  #IMG : #AFF
EndEnumeration

Global TailleL.l=1024
Global TailleH.l=768
Global L.l,H.l,Limg.l,Himg.l,NumDir.q,pos.b,Son.l,Depart.l,Arrivee.l
Global DernierDossier$,NouveauRep$,car$,fin,Repertoire$
Global v$=" v1.03"
Global QuiteThread.l
Global NBRfich.l
Global NewList LesFichiers.s()

Declare TraiteImage(*truc)

QuiteThread=0
CREATION=1
Son=4

; ;--------------------------------
; ;- INITIALISATION DU SON .. ou pas
; ;--------------------------------
; If InitSound   () <>0 ; On ne va pas charger le fichier son si le son n'est pas initialisé sur la machine..
  ; PlaySon=#True
  ; CatchSound ( Son , ?chimes_wav_Start , ?chimes_wav_End)
; Else
  ; PlaySon=#False
; EndIf

;--------------------------------
;- LES PROCEDURES
;--------------------------------
 
Procedure TraiteImage(*truc)
  Depart=ElapsedMilliseconds()
  ;--------------------------------
  ;- REDIMENSION ET SAUVEGARDE
  ;--------------------------------
  ;Repeat
    ResetList(LesFichiers())
    While NextElement(LesFichiers())
      Debug LesFichiers()
      charge=LoadImage(#IMG, LesFichiers())
      Debug "Chargement de l'image :"+LesFichiers()
      Limg=ImageWidth(#IMG)
      Himg=ImageHeight(#IMG)
      Debug "Image chargée ! X : "+Str(Limg)+"     Y : "+Str(Himg)
     
      ;- Calcule de la taille des images de destination.
      If Limg>Himg
        L=TailleL
        H=(Himg*TailleL)/Limg
        Debug " Resolution de sortie :"
        Debug " X : "+Str(L)+"         Y : "+Str(H)
      ElseIf Himg>Limg
        H=TailleH
        L=(Limg*TailleH)/Himg
        Debug " Resolution de sortie :"
        Debug " X : "+Str(L)+"         Y : "+Str(H)
       
      ElseIf Limg=Himg 
        H=TailleH
        L=TailleH ; H car doit faire la Hauteur en taille car les ecrans sont plus large que haut...
        Debug " Resolution de sortie :"
        Debug " X : "+Str(L)+"         Y : "+Str(H)
      Else
        Debug "erreur redimensionnement"
      EndIf
      ;- Redimensionnement de l'image
      ResizeImage(#IMG,L,H,#PB_Image_Smooth)
     
      ;- Sauvegarde de la nouvelle image
      NomNew$=Str(ListIndex(LesFichiers())+1)+".jpg"
      Debug "Nouveau nom : "+NomNew$
     
      Debug "Destination : "+NouveauRep$+NomNew$
      sauve=SaveImage(#IMG,NouveauRep$+NomNew$,#PB_ImagePlugin_JPEG ,8)
      If sauve=0
        SetGadgetText(#AFF,"Erreur Sauvegarde")
        Debug "Save Foireuse"
      Else
        Debug "Save OK"
        Debug "----------------------------"
      EndIf
      Delay(1)
    Wend
   
    ; ;--------------------------------
    ; ;- LECTURE DU SON DE FIN D'OPERATION
    ; ;--------------------------------
    ; If PlaySon=#True
      ; PlaySound (Son ,1)
      ; Delay (600)
      ; StopSound(Son)
    ; EndIf
   
    Arrivee=ElapsedMilliseconds()-Depart
   
    QuiteThread=1
  ;ForEver
EndProcedure

   
Procedure CompteFichiers(dir)
  Repertoire$=EventDropFiles()
  Debug "Repertoire droppé : "+Repertoire$
  NBRfich=0
  ClearList(LesFichiers())
  If ExamineDirectory(dir, EventDropFiles(), "*.jpg")
    While NextDirectoryEntry(dir)
      If DirectoryEntryType(dir) = #PB_DirectoryEntry_File
        fichier$=DirectoryEntryName(dir)
        If LCase(GetExtensionPart(fichier$))="jpg" Or LCase(GetExtensionPart(fichier$))="jpeg" ; histoire d'être sur de chopper toutes les images
          AddElement(LesFichiers())
          LesFichiers()=Repertoire$+"\"+fichier$
          Debug LesFichiers()
          NBRfich+1
          Debug "Nbr Fichier : "+Str(NBRfich)
        EndIf
      EndIf 
    Wend
    FinishDirectory(dir)
  EndIf
  ProcedureReturn NBRfich
EndProcedure

;--------------------------------
;- LE PROGRAMME
;--------------------------------

OpenWindow(0, 583, 629, 319, 23, "LDVM Redim 1024/768 relatif"+v$, #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
StickyWindow(0,1)
StringGadget(#AFF, 0, 0, 315, 20, "Glissez/déposez le dossier image ici",#PB_String_ReadOnly|#ES_CENTER)
EnableWindowDrop(0, #PB_Drop_Files, #PB_Drag_Copy)


  ;{- Boucle
Repeat
  Select WaitWindowEvent()
     
    Case #PB_Event_WindowDrop
      ;--------------------------------
      ;- ANALYSE DU REPERTOIRE
      ;--------------------------------
     
      CompteFichiers(NumDir)
     
      Debug "il y a "+Str(NBRfich)+" images jpg dans ce dossier"
      Debug "Taille liste : "+Str(ListSize(LesFichiers()))
      Debug "...."
     
     
      If NBRfich>0 ; s'il y a des images jpg ou jpeg
       
        ;--------------------------------
        ;- RECUPERATION DU NOM DU DERNIER DOSSIER
        ;--------------------------------
        RepSav$=Repertoire$+"\"
        pos=1
        NumCar=Len(Repertoire$)
        Repeat
          car$=Right(Repertoire$,pos)
          While Left(car$,1)<>"\"
            pos+1
            car$=Right(Repertoire$,pos)
          Wend
        Until Left(car$,1)="\"
        DernierDossier$=Right(car$,pos-1)
        ; Debug "Dernier dossier : "+DernierDossier$
        ; SetClipboardText(DernierDossier$)
       
       
        ;--------------------------------
        ;- CREATION DU REPERTOIRE DESTINATION
        ;--------------------------------
        NouveauRep$=RepSav$+DernierDossier$+"\"
        Debug "Rep à créer : "+NouveauRep$
        ;On vérifie s'il existe
        Resultat.q = FileSize(NouveauRep$)
        Debug Resultat
        If Resultat <> -2 ; s'il ni a pas de repertoire on le créé
          nouveauRep=CreateDirectory(NouveauRep$)
          Debug NouveauRep$+" créé !"
        Else
          Debug NouveauRep$+" existe déjà :]"       
        EndIf
       
        thread=CreateThread(@TraiteImage(),100)
       
       
        mode=0
        Repeat
          Debug "NBR FICH : "+Str(NBRfich)
         
          Select mode
            Case 0
              SetGadgetText(#AFF,"* Traitement en cours image > "+Str(ListIndex(LesFichiers())+1))
            Case 1
              SetGadgetText(#AFF,"* Traitement en cours image >>> "+Str(ListIndex(LesFichiers())+1))
          EndSelect
          mode = 1-mode
          Delay(100)
          Debug Str(ListIndex(LesFichiers())+1)+"/"+Str(NBRfich)
        Until QuiteThread=1 ; ListIndex(LesFichiers())+1>0 And ListIndex(LesFichiers())+1 = NBRfich

        SetGadgetText(#AFF,"Terminé ! "+Str(NBRfich)+" images traitées dans "+DernierDossier$+" en "+Str(Arrivee)+" ms")

        If IsThread(thread)
          KillThread(thread)
          Debug "THREAD TUE"
        Else
          Debug "THREAD DEJA MORT"
        EndIf
       
        NBRfich=0
        ClearList(LesFichiers())
       
      Else
        SetGadgetText(#AFF,"Il ni a pas d'images valides dans ce répertoire")
      EndIf
     
     
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case 0
         
          CloseWindow(0)
          Break
      EndSelect
  EndSelect
ForEver

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Sam 05/Mar/2011 22:03 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 2134
Un thread dois être leger , là c'est encore plus le brin ^^
en gros , dans ta boucle principale , du liste dans un premier temps les images récupérer via le drag & drop , ca ne prend pas trop de temps , si ca prend du temps & que ca bloque ton programme , fait le dans un thread. , une fois que le listing est terminé , toujours dans ta boucle principale , tu parcours la liste des fichiers
et pour chaque fichier tu lances le thread.

ex:
Citation:
Procedure ThreadRedim(*PtrSurImageID)
ImageID = peeki( *PtrSurImageID )
redim ici.
Endprocedure



*Pointeur = 0
pokei(*Pointeur,ImageID)
createthread(@ThreadRedim() , *Pointeur)


Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Sam 05/Mar/2011 22:19 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 2134
Code:
Structure image
  imageid.i
  threadID.i
EndStructure

Global NewList dir_image.image()



Procedure ResizeImage_thread(*imageID.i)
  ImageID = PeekI(*imageID)
  ResizeImage(ImageID,1024,768) 
EndProcedure




ForEach dir_image()
 
  *Pointeur = #Null
  PokeI(*Pointeur,dir_image()\imageid)
 
  dir_image()\threadID = CreateThread(@ResizeImage_thread(),*Pointeur)

Next


A toi de mettre le reste autour ;)


Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Sam 05/Mar/2011 22:21 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5221
Merci G-Rom,
Je suis pas super à l'aise avec les Poke et autre accés mémoire, j'ai peur de générer un joli
Image
sur mon pc tellement je risque de foutre le bronx.


----edit-----

oops tu as changé le bouzin je vais regarder ça.

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Sam 05/Mar/2011 22:22 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 2134
te fait pas de soucis , poke / peek , te donne accès à seulement la mémoire de ton programme , pas ailleurs. donc les risque sont limités.


Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Sam 05/Mar/2011 22:23 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5221
Bon, je vais voir ça. :)

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Dim 06/Mar/2011 11:51 
Hors ligne

Inscription: Dim 10/Jan/2010 5:29
Messages: 2134
Nico à même effacer ce topic... ca me gonfle...

As tu réussi tout seul ? je t'avais donner une amorce de réponse hier soir, tu as eu le temps de voir ma réponse ?


Haut
 Profil  
 
 Sujet du message: Re: Thread -> affichage pendant manipulation de fichiers
MessagePosté: Dim 06/Mar/2011 12:37 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5221
Non j'ai pas reussi, mais après je n'ai pas poursuivis longtemps hier soir, faut dire que j'ai posté ce topic ça faisait 2 jours que je me prenais la tête dessus..
Je m'y remets dès que j'arrive à me motiver. 4 ans (ce n'est pas une façon de parler) que cette gestion des thread me les casse.

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 25 messages ]  Aller à la page 1, 2  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye