PDA

View Full Version : [vb 2008] programma non risponde


SwOrDoFmYdEsTiNy
12-06-2012, 14:26
salve a tutti, sto scrivendo un software per testare delle chiavi, il numero di operazioni che deve fare è abbastanza elevato, però ogni volta che lo mando in esecuzione dopo pochi secondi mi dice che il programma ha smesso di rispondere, anche se dopo 30 minuti ha finito di generare le chiavi.
adesso vorrei sapere, esiste un modo per dire al S.O. che il programma non si è bloccato ma che sta facendo tutta la mole di lavoro che gli è stata assegnata?
la cosa mi dà particolarmente fastidio perchè ho messo apposta una progressbar per vedere a che punto dell'elaborazione è arrivato, però si blocca praticamente subito .-.

AllerITA
12-06-2012, 22:18
Secondo me devi provare a fare così:
Tra un blocco di istruzioni ripetute o tra blocchi di operazioni, alle volte conviene
inserire questo metodo:

http://msdn.microsoft.com/en-us/library/bd65th41(v=VS.90).aspx

per liberare la coda dei messaggi dell'applicazione, cosa che ad esempio nei cicli
può bloccare il programma.

cioè ad esempio se hai un ciclo:


for a=0 to 10000
My.Application.DoEvents()
'codice ciclo
My.Application.DoEvents()
'codice ciclo
My.Application.DoEvents()
next


Ti permette di far dedicare un po di tempo macchina del tuo processo alla
gestione dei messaggi della message queue come ad esempio il draw degli
oggetti grafici nell'applicazione, oppure la gestione della cattura dei comandi
alla finestra del programma che così non bloccano l'applicazione.

SwOrDoFmYdEsTiNy
15-06-2012, 12:02
grazie mille per la risposta, scusa se non ho risposto subito ma ero ammalato e non avevo le forze per mettermi a programmare ^^
visto che avevo un pò di tempo libero mi sono dilettato anche con la creazione dei thread *_* sono una figata

AllerITA
15-06-2012, 17:05
Di nulla, il metodo è già presente dal visual basic 6.0 ed e' molto utilizzato.
Felice di essere d'aiuto!:D