[Risolto]Come capire quando un programma si è caricato "tutto"

Concetti di programmazione, algoritmi, design pattern, stime, tempi sviluppo software

Moderatori: Toki, M.A.W. 1968

Regole del forum
Leggi: IProgrammatori.it - Regolamento Forum
TommyB1992
Utente Junior
Messaggi: 55
Iscritto il: 11 mag 2017, 00:46

[Risolto]Come capire quando un programma si è caricato "tutto"

Messaggioda TommyB1992 » 15 mag 2017, 19:55

Vedo spesso programmi che una volta aperti mostrano una window di caricamento e una volta caricati tutti i (teorici o pratici) moduli si aprono, come è possibile ottenere un risultato simile?

Lo stesso windows mostra una progressive bar di carimento e poi mostra il desktop (per fare un esempio).

Avevo pensato di aprire un file di lock in cima al programma e arrivato alla fine chiudere la window di caricamento e mettere visibile quella del programma vero e proprio.
Sarebbe un approccio corretto?
Ultima modifica di TommyB1992 il 16 mag 2017, 14:51, modificato 1 volta in totale.
Avatar utente
migliorabile
Utente Senior
Messaggi: 2676
Iscritto il: 05 apr 2013, 09:44

Re: Come capire quando un programma si è caricato "tutto"

Messaggioda migliorabile » 15 mag 2017, 21:59

No: un programma, quando viene caricato, viene caricato in BLOCCO.

In realta' non viene nemmeno caricato, ma viene creato un processo associato ad un memory-mapped file, dove il file in questione e' il file .exe del programma. Ma questa e' un'altra storia.

Quello che vedi e' il processo di caricamento di MODULI AGGIUNTIVI, fatto direttamente dal PROGRAMMA STESSO: e' IL PROGRAMMA che mostra lo stato di avanzamento del caricamento dei moduli aggiuntivi.
oregon
Utente Senior
Messaggi: 9562
Iscritto il: 20 nov 2011, 18:54
Località: Roma

Re: Come capire quando un programma si è caricato "tutto"

Messaggioda oregon » 16 mag 2017, 07:31

Mi sfugge il motivo razionale che ti porta a voler fare questa cosa anche se non ne hai bisogno...
___________________
"Il gioco del Lotto : la tassa sull'imbecillità". (Bruno De Finetti, grande matematico italiano)
TommyB1992
Utente Junior
Messaggi: 55
Iscritto il: 11 mag 2017, 00:46

Re: Come capire quando un programma si è caricato "tutto"

Messaggioda TommyB1992 » 16 mag 2017, 14:51

Ok grazie
Avatar utente
LPs
Utente Senior
Messaggi: 209
Iscritto il: 09 mag 2017, 21:34

Re: [Risolto]Come capire quando un programma si è caricato "tutto"

Messaggioda LPs » 19 mag 2017, 13:22

Tranducendo: vuoi una progressbar di qualche tipo che visualizzi lo stato dell'inizializzazione del tuo programma: caricamento di file, inizializzazione di strutture etc....

Se è così, prima di tutto devi avere un programma che ci metta qualche secondo a partire, altrimenti l'utente non vede comunque nulla. Secondo, in base al linguaggio che stai utilizzando, userei un task a a parte che visualizzi lo stato con gli elementio che la tua piattaforma ti mette a disposizione.
L'immaginazione è più importante della conoscenza. La conoscenza è limitata, l'immaginazione abbraccia il mondo - Albert Einstein

LPs-On StackOverflow
+m2+
Utente Senior
Messaggi: 372
Iscritto il: 10 mag 2017, 18:22

Re: [Risolto]Come capire quando un programma si è caricato "tutto"

Messaggioda +m2+ » 19 mag 2017, 14:55

Come sopra spiegato ciò accade, tipicamente, per la generazione a runtime di strutture dati più o meno complesse (esempio: form) le quali, spesso per ridurre il tempo di "prima apparizione" di "qualcosa" sullo schermo, vengono inizializzate successivamente.
In sostanza il programma eseguibile viene caricato (* in realtà la questione è potenzialmente più complessa, ma non approfondiamo) in "un colpo". Poi però può impiegare anche secondi (o decine di secondi) di "lavori vari".
Sempre in linea generale, talvolta, sono addirittura compressi (gli eseguibili), con UPX, mpress o simili, per ridurne la dimensione.
Ciò aumenta ancora il tempo di "avvio" (per la decompressione); normalmente ciò si fa per ridurre la dimensione degli aggiornamenti da scaricare da Internet, più che per risparmiare spazio-disco.

Torna a “Ingegneria del Software”

Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti