Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    [vb.net] consiglio su convenienza uso thread

    Debbo fare questa operazione.
    Una winform con due pulsanti, LanciaOperazione, InterrompiOperazione, ed una Label per vedere lo stato di avanzamento dell'operazione.

    1) L'operazione consiste nella scansione completa del disco C alla ricerca di directory con immagini di dato tipo e nella ricopiatura nel disco D
    2) debbo interrompere quando voglio l'operazione.
    3) debbo vedere nella Label lo stato di avanzamento (p.e. la directory corrente scandita)

    Il programma l'ho già fatto. Ho usato massicciamento Application.DoEvent.

    Adesso volevo provare a fare la stessa operazione ma usando un Thread.
    Data la mia completa inesperienza in questo campo, chiedo a chi sa, se per questo lavoro, l'uso di un Thread sia conveniente o meno.
    Grazie
    Pietro

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E' sicuramente meglio un thread (anche più di uno, ma le cose si complicherebbero ...).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ti ringrazio della risposta.

    Se posso continuare in questo post, metto quello che ho fatto

    preparo una classe private da inviare al thread
    codice:
    'classe privata da passare al thread
    Private Class ThreadData
     'valori di input
     Public DirectoryIniziale As String
     'valori di output
     Public DirectoryCorrente As String
    End Class
    una variabile private
    Private t As Thread = Nothing

    in modo da bloccare il thread da pulsante
    codice:
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
     If t IsNot Nothing Then t.Abort()
    End Sub
    il lancio del thread
    codice:
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
     Me.Button2.Focus()
     Me.Button1.Enabled = False
     Dim data As New ThreadData() With {.DirectoryIniziale = "c:\"}
     t = New Thread(AddressOf RunThread)
     t.Start(data)
     Do While Not t.Join(1)
      Me.Label1.Text = data.DirectoryCorrente
      Application.DoEvents()
     Loop
     Me.Button1.Enabled = True
    End Sub

    vado bene?
    Pietro

  4. #4
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Io userei i nuovi Tasks per i thread.

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Quote Originariamente inviata da cassano Visualizza il messaggio
    Io userei i nuovi Tasks per i thread.
    ciao. Io ho un vecchio libro uscito al tempo di vs2005. E non sono informato sui Task.
    Qualche link per aggiornarmi?
    ciao
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.