Progressbar si bloccca

giovedì 06 dicembre 2012 - 17.57
Tag Elenco Tags  VB.NET

stefano1856 Profilo | Junior Member

Ciao,
ho notato che inserendo una progressbar in una windows form, quando il ciclo diventa troppo pesante (diciamo 1000 iterazioni) la form va in blocco fino al termine del ciclo.
C'é un soluzione a questo a parte quello di lanciare il cilco in un thread separato?
Un saluto

algraps Profilo | Junior Member

>Ciao,
>ho notato che inserendo una progressbar in una windows form,
>quando il ciclo diventa troppo pesante (diciamo 1000 iterazioni)
>la form va in blocco fino al termine del ciclo.
>C'é un soluzione a questo a parte quello di lanciare il cilco
>in un thread separato?
>Un saluto

Ciao,
utilizza o un Thread.task oppure un backgroundworker per fare queste iterazioni
http://www.dotnetperls.com/backgroundworker

Fammi sapere
Ciao

A.G.
http://nothingnessit.wordpress.com/

stefano1856 Profilo | Junior Member

Ciao,

io pensavo a qualcosa di più veloce, tipo un refresh della form (che ho provato ma non funziona)

Stefano

algraps Profilo | Junior Member

>Ciao,
>
>io pensavo a qualcosa di più veloce, tipo un refresh della form
>(che ho provato ma non funziona)
>
>Stefano

Purtroppo non e' cosi' veloce.. ma comunque e' semplice.
Ti giro un link che spiega il multithreading http://www.yoda.arachsys.com/csharp/multithreading.html

Ciao

A.G.
http://nothingnessit.wordpress.com/

stefano1856 Profilo | Junior Member

Ho risolto con questo trucchetto :

'Nasconde il mouse
System.Windows.Forms.Cursor.Hide()

for ...

... 'iterazioni

next


'Rende nuovamente visibile il mouse
System.Windows.Forms.Cursor.Show()

Ciao

algraps Profilo | Junior Member

>Ho risolto con questo trucchetto :
>
>'Nasconde il mouse
> System.Windows.Forms.Cursor.Hide()
>
>for ...
>
>... 'iterazioni
>
>next
>
>
>'Rende nuovamente visibile il mouse
>System.Windows.Forms.Cursor.Show()
>
>Ciao

Cosi pero' hai sempre la form in stato di freeze. Non dai all'utente la possibilita' di cliccarci sopra... ti consiglio sempre di vedere di utilzzare il backgroundworker... in questo modo non dai l'effetto di blocco all'utente.
Ciao


A.G.
http://nothingnessit.wordpress.com/

Vinsent Profilo | Senior Member

>Cosi pero' hai sempre la form in stato di freeze. Non dai all'utente
>la possibilita' di cliccarci sopra... ti consiglio sempre di
>vedere di utilzzare il backgroundworker... in questo modo non
>dai l'effetto di blocco all'utente.
>Ciao
>
>
>A.G.
>http://nothingnessit.wordpress.com/

Concordo....personalmente, quando non riesco ad interagire con un programma penso:
>si è bloccato...che programma di m***a...!

@stefano1856
"imparati" ad usare i backgroundworker e fai una cosa fatta per bene!!!
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 !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5