Domanda

Come faccio a calcolare la percentuale di caricamento della mia applicazione C #. voglio mostrare una schermata iniziale con una barra di avanzamento che mostra la percentuale di applicazione caricata.

Esiste un metodo \ libreria standard per quello o dovrò aggiornare solo il valore della barra di progresso in diversi punti nel mio codice caricamento form.

o può qualsiasi dammi un tutorial su preloaders applicazione

È stato utile?

Soluzione

Probabilmente il modo più semplice per farlo è quello di creare un'istanza del modulo di apertura all'inizio del evento Load del form di avvio. Nella forma iniziale, esporre la sua ProgressBar come una proprietà pubblica. Dopo aver creato la forma iniziale, impostare la proprietà massima del ProgressBar al numero di passi discreti che si può identificare nel codice dell'evento Load, poi dimostrarlo chiamando il suo metodo () .Show (non .ShowDialog (), ovviamente).

Come ogni fase dell'evento di caricamento è completata, basta incrementa proprietà Value del ProgressBar pubblico. Quando tutti i passaggi, chiudere il modulo di apertura e smaltire.

Questo può o non può funzionare correttamente, perché se il modulo di avvio contiene un gran numero di controlli, quindi una buona percentuale del tempo loadup totale sarà effettivamente speso nel costruttore del form, che sarà chiamato prima dell'evento Load. Potrebbe essere meglio per spostare tutto il codice di inizializzazione nel costruttore, e creare e Mostra la schermata iniziale da lì.

Altri suggerimenti

La prima volta l'utente avvia l'applicazione, assumere ci vorranno 10 secondi e mostrare progressbar il conto alla rovescia quei 10 secondi. Una volta che l'applicazione viene caricata, salvare da qualche parte sul computer di tempo effettivo dell'utente ci sono voluti per caricare la vostra applicazione. Prossima volta che l'utente carica l'applicazione, uso del tempo risparmiato al posto delle originali 10 secondi.

Questo è il concetto semplice ed evidente. Utente non importa quali parti dell'applicazione da caricare, si preoccupa quanto tempo ci vorrà e lui vuole vedere il conto alla rovescia.

Beh, in ogni caso è necessario una supposizione abbastanza precisa di quanto tempo i vostri passi individuali prendono. Solo allora si può dare una barra di avanzamento in realtà significativa. Si può approssimare che dividendo il processo di caricamento in diversi passaggi si assume di essere quasi uguali nel tempo e calcolare il progresso come aver completato questi passaggi.

Un'alternativa sarebbe quella di non mostrare una barra di avanzamento, ma piuttosto una serie di fasi di carico, rappresentato sia da un testo o grafica. Credo che KDE fa all'avvio. In questo modo si mostra progressi, ma evitare le aspettative dell'utente verso una barra di avanzamento (che funziona meglio se la barra di avanzamento è né lineare procedendo o accelerazione. Se si ferma frequentemente e salta solo crea l'impressione di un processo molto lento).

Un'altra opzione sarebbe quella di eliminare la schermata iniziale del tutto cercando di rendere l'avvio programma veloce e il caricamento di ciò che è necessario in fase di esecuzione. Questo può o non può essere un'opzione per voi o il vostro programma, ma può mostrare abbastanza significativi miglioramenti nel tempo di avvio e l'impressione generale di velocità del programma.

Prima di tutto la schermata di avvio viene visualizzata per dare all'utente l'illusione che il programma è iniziato e che sarà gestito il controllo in qualsiasi momento.

In secondo luogo, se si desidera visualizzare la barra di avanzamento, allora avete bisogno di calcolare con precisione il numero di attività che si esegue. Poi mostra il loading xxxxxx....... etichetta e incrementare barra di avanzamento dopo il completamento di ogni elemento.

Per quanto riguarda la domanda di ottimizzare l'avvio volta dipende principalmente la funzione della vostra applicazione.

Si supponga di applicazione è un PIM allora si può caricare gli eventi e le attività per oggi e mostrare all'utente in modo rapido e quindi avviare il caricamento di altri dati.

Una volta ho avuto una domanda in cui ho dovuto mostrare la gerarchia degli oggetti utilizzando Treeview ogni nodo potrebbe avere un numero illimitato di elementi. Ho caricato gli oggetti di livello superiore e poi visualizzato nella vista ad albero e mettere marcatore (in realtà ho messo * nel tag del nodo, che ho imparato da qualche libro .net o un articolo che avevo letto tempo fa, ma ricordate) quando l'uso cliccato sul nodo ho caricato i bambini immediati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top