Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Aggiornamento progressbar in multithread vb .net
venerdì 30 maggio 2008 - 13.45
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Ervis
Profilo
| Newbie
4
messaggi | Data Invio:
ven 30 mag 2008 - 13:45
ciao a tutti,
ho provato a cercare sia su questo forum che su altri che trovo nel web ma no ho trovato proprio quello che volevo:
il mio problema sta nell'aggiornare una progressbar, nel form principale della mia applicazione in VB .NET (utilizzo Visual Studio 2005, OS Win XP), mentre eseguo una query in un altro thread.
In pratica io so quanti record devo leggere (memorizzo il valore in una variabile intera, TotRecords) e con un ciclo while aumento il contatore ( i as integer) fino a raggiungere il numero di record totali, TotRecors.
vorrei riuscire ad aggiornare la progressbar al valore del contatore i in modo da vedere sul mio form principale la progressbar scorrere e successivamente magari anche una label che riporta il valore del contatore i.
spero che vi sia già capitato un preblema simile e soprattutto che lo abbiate risolto
grazie in anticipo
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 30 mag 2008 - 14:51
>il mio problema sta nell'aggiornare una progressbar, nel form
>principale della mia applicazione in VB .NET (utilizzo Visual
>Studio 2005, OS Win XP), mentre eseguo una query in un altro
>thread.
Io ti consiglio di utilizzare il componente BackgroundWorker che consente di fare quello che dici tu.
Qui c'è la documentazione:
http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx
e c'è proprio un esempio in cui viene avviata un'operazione gravosa in termini di cicli CPU usati (il calcolo dei numeri di fibonacci) e mentre viene eseguita viene aggiornata una progressbar.
Copia e incolla e adatta in base alle tue necessità.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Ervis
Profilo
| Newbie
4
messaggi | Data Invio:
dom 1 giu 2008 - 15:15
ciao e grazie per la risposta,
conoscevo vagamente le funzionalità del BackgroundWorker ma ho sempre optato per l'utilizzo dei delegate comunque provando ad utilizzare il BackgrounWorker da te consigliato, il mio problema non sono riuscito a risolverlo per il semplice fatto che (almeno penso) io tentavo di aumentare il valore della progressbar con un ciclo troppo frequente dove tramite un delegato la mia procedura non aveva abbastaza tempo per aggiornare la progressbar che gli arrivava già il valore successivo da aggiornare.
facendo così sul mio form sembrava che l'applicazione fosse bloccata fino al termine della procedura che poi mi compariva l'ultimo aggiornamento.
grazie ancora
ciao
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !