Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Ma che senso ha spezzare un proj in 2 EXE?

Se da un progetto/EXE che contiene 100 form ne tiro fuori 10 e le metto in
un altro progetto/EXE (che chiamo dal primo usando la CreateProcess e la
WaitForSingleObject finchè il secondo non viene chiuso, vedi post relativo),
ai fini dell'occupazione di memoria non guadagno un bel niente, anzi, se c'è
qualche DLL attaccata (e c'è!), consumo certamente di più. L'unico vantaggio
è quello che il primo EXE sempre aperto (diciamo che è un menù dal quale
avvio le altre procedure, come form interne o, come detto, esterne su altri
EXE) occuperà solo per se (quindi meno) quando non attivo il secondo EXE.
Sono scoppiato o il mio ragionamento ha ancora un senso? Grazie.

 Sono scoppiato o il mio ragionamento ha ancora un senso? Grazie.
Io ti avevo consigliato di creare delle .dll riutilizzabili... non piů exe!
;)

 Io ti avevo consigliato di creare delle .dll riutilizzabili... non più
exe!
Ok, Lord, ma che sia un EXE o una DLL che, ipotizziamo, fa solo quella cosa
e viene (sempre lui/lei) richiamato da 800 punti (ribadisco, sempre e solo
quello/quella, quindi riutilizzabile), è comunque un pezzo di memoria che in
quel momento se ne va, no?!

Mi spiego meglio:
Situazione attuale:
EXE1: Menů e alcune form
DLL1: Sub/Function di uso generale
Nuova situazione:
1) Prendo EXE1 e tiro fuori una Form e creo cosě EXE2 (o DLL2, credo che non
cambi nulla)
2) A questo punto EXE1 č piů piccolo e occupa meno memoria
3) Chiamo (da EXE1 che sta sempre in memoria, con DLL1) EXE2 (o una S/F di
DLL2) e aspetto che si chiuda
4) In questo istante (prima della chiusura di EXE2/DLL2) la memoria occupata
č pari a EXE1+DLL1 + EXE2 o DLL2 (+ magari DLL1 per le S/F comuni), anzi, di
piů perchč ci saranno pure delle librerie interne
Sbaglio?


Scusa Lupo, a quale thread precedente ti riferisci?
Mi sfugge il concetto di fondo.
ciao
ugo

 Io ti avevo consigliato di creare delle .dll riutilizzabili... non più
exe!
E io ti avevo detto di usare un ActiveX-exe (una sola istanza per tutti i
chiamanti)
Ciao

 ha scritto nel messaggio
news:agbucl$m42$1...@monty.lombardiacom.it...

E comunque sia, uno o l'altro ma non la CreateProcess :-)
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

Insomma (non so come meglio spiegarmi, si veda uno dei miei post in questo
topic), è vero o non è vero che in un certo istante un EXE + qualcos'altro
(DLL Active X, Active X, EXE Active X, pinco pallo) che in quel momento
viene attivato occupano in memoria per (almeno) la loro somma?
E allora che senso ha mettere una form (con l'evidente intento di
riutilizzarla) da un'altra parte se, agli effetti dell'occupazione in
memoria, poi non ci si guadagna, anzi, ci si perde?!


Come ridurre dimensioni EXE e memoria?
e
CreateProcess

 E comunque sia, uno o l'altro ma non la CreateProcess :-)
E' l'unica, mi pare, che mi consente di usare la WaitForSingleObject
Che alternative proponi per poter anche sapere quando "l'aggeggio" chiamato
termina?

 ha scritto nel messaggio
news:1sfW8.8394$K_4.2...@twister1.libero.it...

Mi sempra una grossa complicazione, sono sufficienti i normali meccanismi
COM previsti da VB
ecco perche' ti suggerivamo (anche nell'altro thread) DLL o EXE ActiveX...
se chiami un metodo di una classe, l'esecuzione e' sospesa fintanto che il
metodo non rientra; se la classe e' in un ActiveX e in tale metodo
visualizzi una finestra modale, ecco che ottieni il risultato che cercavi
Se poi, oltre alla modularita' e al riutilizzo dei programmi, vuoi stare
anche attento all'occupazione complessiva di memoria, allora la scelta di un
EXE ActiveX ribadita da Zanna dovrebbe essere quella corretta


 EXE ActiveX ribadita da Zanna dovrebbe essere quella corretta
OK, sarà, ma non capisco. 1 EXE + 1 EXE Active X occupano memoria per quello
che a loro, complessivamente serve quando sono entrambi attivi, no?
E allora, non occupo meno (o quantomeno uguale) tenendo la mia finestra
(aperta come modale) nell'unico EXE?

 (aperta come modale) nell'unico EXE?
Il discorso salta se hai un solo exe che usa questo "modulo".
Se più exe girano contemporaneamente e usano il modulo allora ti conviene in
tutti i sensi.
Ciao

 ha scritto nel messaggio
news:agc8ga$p5v$1...@monty.lombardiacom.it...

Esatto,
(anche se, volendo esagerare, persino con un unico client la soluzione puo'
essere conveniente perche' "scala" meglio su sistemi multiprocessore)
Per capirci, Lupo, se hai 10 applicazioni client, viene caricata un *unica*
istanza dell'EXE ActiveX e 10 istanze di una sua Form (questo con classi
MultiUse), che e' ben diverso da 10 istanze complete dell'ActiveX... per
esempio, tutte le variabili dichiarate a livello di modulo sono a singola
istanza indipendentemente dal numero di client.


 CreateProcess
thnx
comunque direi che ti hanno già detto tutto
Zanna e Luca.
ciao
ugo

 istanza indipendentemente dal numero di client.
Ok, credo di aver capito. Approfondirò. Grazie.