[vb.net] dim form as new form

lunedì 11 febbraio 2008 - 14.35

escaflowne Profilo | Junior Member

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

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

>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

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

>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

Valuta anche la possibilità di chiamare il metodo costruttore 'new', solo al momento che ti serve quella particolare form.

escaflowne Profilo | Junior Member

>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

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

>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
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5