Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [VB.Net] Funzione ricorsiva in un thread separato

    Ho una funzione ricorsiva che scansiona tutti i file del pc. Fa impallare il mio programma quindi dovrei far fare questa ricerca su un thread separato o dovrei utilizzare una funzione che faccia la ricerca utilizzando dei cicli for... next (ma è molto difficile) e utillizzare il controllo background worker.
    Grazie, ...

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    E dov'è il problema?

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481

    Re: [VB.Net] Funzione ricorsiva in un thread separato

    Originariamente inviato da .:Francesco 96:
    ... quindi dovrei far fare questa ricerca su un thread ...
    E quindi? Perche' non lo fai? Qual e' la domanda?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Ti conviene dare un'occhiata qui
    Gestione Thread

    In sostanza dichiari un thread come nuovo thread e passi al costruttore il nome della funzione che sarà eseguita dal thread

    codice:
    Dim t as new System.threading.Thread(AddressOf ThreadProc)
    Dopodichè lanci semplicemente il thread

    codice:
    t.Start()
    Devi poi stare attento alla concorrenza sulle risorse però.

    Ciau

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Bisogna anche analizzare il perchè impalla il programma.
    Forse è scritta male, ed allora a che servirebbe un thread separato?

    Ma senza vederla...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da gibra
    Bisogna anche analizzare il perchè impalla il programma.
    Molto probabilmente, se la ricerca è molto pesante e avviene nell'unico thread del programma, è l'interfaccia dello stesso programma a bloccarsi (naturalmente).

    Non penso tutto il PC ... anche se un'attività pesante sul disco, lo rallenta in generale ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Credo che gli impalli il programma perchè non appena entra in quella funzione ci rimane per un bel po' bloccando quindi l'esecuzione del programma "principale". Comunque in effetti vedendo la funzione potremmo capirci di più ^^

    Ciau

  8. #8
    Ecco parte del codice:

    Try
    Dim ListVoice As ListViewItem

    Dim x As New DirectoryInfo(Path)
    Dim y1 As FileInfo
    Dim y2 As DirectoryInfo
    Dim z1 As FileInfo() = x.GetFiles()
    Dim z2 As DirectoryInfo() = x.GetDirectories()

    For Each y1 In z1
    ListVoice = ListView1.Items.Add(y1.Name)
    Next y1

    If z2.Count > 0 Then

    For Each y2 In z2
    FindFile(Path & "\" & y2.Name)
    Next y2

    End If

    Catch ex As Exception
    MessageBox.Show(ex.Message, "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try

    Si, si impalla l'interfaccia grafica del programma.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da .:Francesco 96:
    Si, si impalla l'interfaccia grafica del programma.
    Come ti dicevo, è normale. Come hai detto tu all'inizio della discussione, devi usare un altro thread.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Mi date una mano? Non so da dove iniziare! Come creo e uso un nuovo thread?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.