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

di il
5 risposte

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

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?

5 Risposte

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

    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.
  • Re: [Risolto]Come capire quando un programma si è caricato "tutto"

    Mi sfugge il motivo razionale che ti porta a voler fare questa cosa anche se non ne hai bisogno...
  • Re: [Risolto]Come capire quando un programma si è caricato "tutto"

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

    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.
  • Re: [Risolto]Come capire quando un programma si è caricato "tutto"

    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.
Devi accedere o registrarti per scrivere nel forum
5 risposte