[vb.net] sospendere il programma fino a raggiungere una condizione

venerdì 16 aprile 2010 - 15.33

marco444 Profilo | Newbie

ciao a tutti,
ho trovato questo codice:

Thread.Sleep(2000)

sospende il programma per 2 secondi, e se io lo volessi sospendere quando raggiungo una certa condizione, come per esempio fino a quando non sono connesso ad internet?

kataklisma Profilo | Senior Member

>ciao a tutti,
Ciao :)

>ho trovato questo codice:
>
>Thread.Sleep(2000)
>
>sospende il programma per 2 secondi, e se io lo volessi sospendere
>quando raggiungo una certa condizione, come per esempio fino
>a quando non sono connesso ad internet?

Thread.Sleep(int n) mette in blocco il programma nel vero senso della parola, ovvero non esegue nessuna operazione durante i ms indicati come paramentro.

potresti ad esempio, per aggirare il problema in termini semplicistici, giocare con la prorpietà enabled del form:

me.enabled = false //... //connessione a internet //... me.enabled = true

Ciao ;)
------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

marco444 Profilo | Newbie

in questo modo però blocca i codici in esecuzione disabilitando il form?

kataklisma Profilo | Senior Member

>in questo modo però blocca i codici in esecuzione disabilitando
>il form?

No, non blocca nessuna operazione logica, a differenza di Thread.Sleep che blocca il thread corrente e quindi non permette la continuazione delle operazioni.

La proprietà enabled fa al caso tuo in quanto vorresti bloccare gli input derivanti da operazioni sull' UI da parte dell'utente finche la connessione internet non è attiva, nonostante la UI sia bloccata le operazioni di connessione alla rete, ad esempio, possono essere eseguite, se utilizzi Sleep dell'oggetto thread le operazioni verranno eseguite dopo i ms indicati senza pero bloccare gli input dell'utente, un'esempio :

Inizio programma blocca l'interfaccia (enabled = false) Operazioni varie Operazione di connessione ad internet Se connessione = true allora sblocca l'interfaccia (enabled = true) Altrimenti non sbloccare l'interfaccia (enabled = false) ... ...

ovviamente dovresti controllare la presenza o meno di una connessione internet attraverso un timer.

;)

------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5