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
[vb.net] dim form as new form
lunedì 11 febbraio 2008 - 14.35
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
escaflowne
Profilo
| Junior Member
180
messaggi | Data Invio:
lun 11 feb 2008 - 14:35
Ciao a tutti,
titolo criptico, lo so, ma non sapevo come sintetizzare.
Dunque, la mia applicazione ci mette un po' troppo a partire e, a parte il tempo necessario alla connessione tcp/ip con il db, ho notato che del tempo viene perso perchè, per velocizzare l'uso, carico in un modulo quattro form in questo modo:
dim form1 as new form1
... .... ....
dim form4 as new form4
Quando faccio così è corretto che esegua il load del form, giusto? Tuttavia, dato che voglio solo caricare in memoria le form ma non farci nulla, non mi interessa, all'avvio, di eseguire alcunchè del codice sulla form.
Per evitare di far eseguire il codice nel form_load (si tratta di inizializzazione dei campi attraverso il caricamento dei dati da db) e di farlo eseguire SOLO quando l'utente accede alla form, cosa devo fare? Devo spostare tutto su activate? Altrimenti?
Grazie 1000
GattoNero
Profilo
| Newbie
26
messaggi | Data Invio:
lun 11 feb 2008 - 15:18
Potresti eseguirlo su un thread separato (magari preso dal ThreadPool)
questo nel caso le form non ti servano subito (comunque puoi sempre fare un lock per evitare che vegano usate ante che il caricamento sia finito)...
devi creare un delegato che carichi le form (in un metodo) poi usare un
BeginInvoke(...) con una funzione di callback che avvisa del completamento del caricamento (magari settando un bool o simili)...
escaflowne
Profilo
| Junior Member
180
messaggi | Data Invio:
lun 11 feb 2008 - 16:27
>Potresti eseguirlo su un thread separato (magari preso dal ThreadPool)
>questo nel caso le form non ti servano subito (comunque puoi
>sempre fare un lock per evitare che vegano usate ante che il
>caricamento sia finito)...
>
>devi creare un delegato che carichi le form (in un metodo) poi
>usare un
>BeginInvoke(...) con una funzione di callback che avvisa del
>completamento del caricamento (magari settando un bool o simili)...
Interessantissimo!
Solo che non so come fare quindi devo studiarmelo un po' prima.
Vediamo se ho capito:
devo caricare le form su un thread separato (e fin qui ci arrivo come logica almeno)
poi, dal thread principale, invoco queste form. GIusto?
Mi dici che documentazione posso studiare per questo "giochino"?
Grazie!
GattoNero
Profilo
| Newbie
26
messaggi | Data Invio:
lun 11 feb 2008 - 19:13
uhm..
vediamo ... allora... controlla l'uso e dichiarazione dei delegati...
poi l'utilizzo del metodo Invoke e di AsyncResult
... se hai bisogno di qualche esempio ... beh te lo scrivo...
escaflowne
Profilo
| Junior Member
180
messaggi | Data Invio:
mar 12 feb 2008 - 06:34
>uhm..
>vediamo ... allora... controlla l'uso e dichiarazione dei delegati...
>poi l'utilizzo del metodo Invoke e di AsyncResult
>... se hai bisogno di qualche esempio ... beh te lo scrivo...
intanto ti ringrazio.
Gli esempi sono sempre ben accetti
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
mar 12 feb 2008 - 07:54
Valuta anche la possibilità di chiamare il metodo costruttore 'new', solo al momento che ti serve quella particolare form.
escaflowne
Profilo
| Junior Member
180
messaggi | Data Invio:
mar 12 feb 2008 - 12:13
>Valuta anche la possibilità di chiamare il metodo costruttore
>'new', solo al momento che ti serve quella particolare form.
ci avevo pensato in effetti ma sono form che si usano spessissimo (almeno 3 delle 4) e facevo così solo per velocizzarne l'utilizzo
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
mar 12 feb 2008 - 13:01
Potresti istanziarli la prima volta che ti capita di utilizzarli. Se può accadere da più parti diverse, basta prima testare se il form non è già 'in essere' .
Se poi ti merita fare tutto all'inizio, rimane valido il thread separato.
escaflowne
Profilo
| Junior Member
180
messaggi | Data Invio:
gio 14 feb 2008 - 07:01
>Potresti istanziarli la prima volta che ti capita di utilizzarli.
>Se può accadere da più parti diverse, basta prima testare se
>il form non è già 'in essere' .
>Se poi ti merita fare tutto all'inizio, rimane valido il thread
>separato.
ok, anche questa potrebbe essere la soluzione, in pratica solo una persona sarebbe costretta, la prima volta, ad aspettare un pochetto in più.
Vi ringrazio tutti quanti
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 !