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
Whait di 3 secondi
mercoledì 10 settembre 2008 - 16.51
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Luka90
Profilo
| Junior Member
66
messaggi | Data Invio:
mer 10 set 2008 - 16:51
Ciao a tutti!
Nel mio programma devo fare un "whait" di 3 secondi.
Il problema è che clickkando un pulsante mi mostra un'immagine ed è necessario che questa resti visibile per un tempo minimo necessario a vederla, quantificato in 3 secondi.
Ora, devo per forza utilizzare un timer e sfruttare il suo evento?
Grazie a tutti
Luca
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
mer 10 set 2008 - 16:56
Ciao
Se vuoi che l'applicazione risponda, puoi usare un timer (strada semplice) o un thread separato (strada complessa). Se vuoi semplificare ancora di più le cose invece puoi usare il metodo Thread.Sleep(3000) che "addormenta" il thread per 3000 millisecondi (3 secondi), ma l'applicazione potrebbe essere segnalata come non rispondente.
Luca
Luka90
Profilo
| Junior Member
66
messaggi | Data Invio:
mer 10 set 2008 - 16:59
Ah, chiaro
Allora mi rassegnerò ad usare il timer, eviterei che il sistema rompesse le bolle
Grazie!
Luca
xe
Profilo
| Newbie
29
messaggi | Data Invio:
mer 10 set 2008 - 17:46
la sospensione del thread non comporta lo status di applicazione non responsiva.
l'uso di un thread separato comporta le problematiche di acecsso sicuro agli oggetti della tua form, per ovviare a questo dovresti usare una delegate al codice per rimuovere l'immagine residente nel thread principale della tua form, magari passandola come parametro di callback ad un Thread.Timer che di crei al volo, evitando di impegolarti con gli ogetti timer della tua form e la gestione dell'evento.
Deligere oportet quem velis diligere
Luka90
Profilo
| Junior Member
66
messaggi | Data Invio:
mer 10 set 2008 - 17:56
L'uso dei thread è stato l'ultimo argomento trattato dal mio professore e troppo superficialmente. Non ho ancora avuto modo di approfondirlo e questa è una grave vacanza che cercherò di colmare al più presto.
Grazie delle informazioni, l'utilità è ovvia
Luca
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
mer 10 set 2008 - 18:11
>la sospensione del thread non comporta lo status di applicazione non responsiva.
Windows cataloga una finestra come non responsiva dopo che non elabora più i messaggi per un certo lasso di tempo (che a quanto pare varia da un S/O all'altro) In tal caso nasconde la finestra interessata e la sostituisce con una finestra "fantasma" avente le stesse dimensioni e gli stessi stili, e aggiunge al titolo il testo "(Non risponde)". Ora, poichè col metodo Thread.Sleep si va a bloccare completamente il thread chiamante, la finestra smetterà anche di elaborare i messaggi, e dopo poco non risponderà più. Questo può non accadere su sistemi operativi nuovi, come XP o Vista, in fondo 3 secondi non sono molti, ma su S/O un po' più datati, come Windows ME o '98, il blocco è pratcamente certo.
Per verificare "sleeppa" il thread per 15 secondi anzichè 3, e prova a clickare sulla finestra ripetutamente (azione molto effettuata sugli Splash Screen), il risultato dovrebbe essere quello "cercato"
Luca
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 !