Nel mio ultimo programma mi sono imbattuto sul metodo in oggetto: per evitare il blocco del programma ho inserito, in diversi punti (soprattutto in loop di attesa) un bel ProcessMessages.
Il programma che aveva mostrato una certa stabilità, ha iniziato ad avere una serie di scompensi e di blocchi anomali.
Ho iniziato a verificare in debug ed ho scoperto che altri ProcessMessages erano presenti nel codice del componente da me utilizzato.
Fondamentalmente la questione è così riassumibile:
nel caso in cui in una procedura evento sia usata una particolare risorsa (esempio una porta COM), e durante l'uso della risorsa si esegue un Application.ProcessMessages è necessario garantire che non si possa generare alcun evento che magari vada a riaprire la porta COM. Detta così la cosa sembra chiara e semplice, in realtà in progetti complessi dove gli eventi possono generarsi in più parti (magari nemmeno dall'interfaccia utente), è necessario conoscere bene l'uso che il programma fa della risorsa.
Usate Application.ProcessMessages con oculatezza e, se proprio non potete farne a meno, disabilitate gli eventi che possono generare "rientro" (ovvero richiamo della stessa procedura) o introducete il concetto di stato della risorsa (in altri termini se la risorsa è nello stato x non si può effettuare la operazione di nuovo).
Thursday, August 31, 2006
Wednesday, August 30, 2006
Un computer non è una lavatrice
E' vero. Forse esistono lavatrici complesse come computer, ma il messaggio che voglio dare è questo: molte persone ritengono che, una volta comprato un computer sia sufficiente seguire il ciclo di ogni altro elettrodomestico: accendensione, uso, spegnimento.
Questo è vero se: non c'è connessione ad internet, non si installano periferiche, non si installano programmi, non si cancella niente dal disco. Cioè non è vero mai.
Ho realizzato questa considerazione dopo aver rimesso a "nuovo" un paio di PC che era diventato impossibile utilizzare a causa di Spyware, Virus, frammentazione e registry gigante e mal combinato.
Purtroppo molti utenti non tengono in debito conto le operazioni fondamentali per la corretta vita di un computer:
- installare un antivirus
- tenere il sistema operativo aggiornato
- fare una deframmentazione ogni tanto
- disinstallare correttamente i programmi non più necessari
Esistono programmi gratuiti oppure in trial che consentono di rimediare a situazioni critiche.
Comunque il mio elenco di attrezzi è il seguente:
1. Antivirus AVG
2. AntiSpyware Spybot & Destroy
3. Un'utility per la pulizia del regristry
4. Il sito Windows Update
Dopo 2 giorni di lavoro, scansioni, deframmentazioni e pulizie, il PC è tornato in uno stato stabile.
Vediamo se stavolta l'utente sarà più accorto.
Questo è vero se: non c'è connessione ad internet, non si installano periferiche, non si installano programmi, non si cancella niente dal disco. Cioè non è vero mai.
Ho realizzato questa considerazione dopo aver rimesso a "nuovo" un paio di PC che era diventato impossibile utilizzare a causa di Spyware, Virus, frammentazione e registry gigante e mal combinato.
Purtroppo molti utenti non tengono in debito conto le operazioni fondamentali per la corretta vita di un computer:
- installare un antivirus
- tenere il sistema operativo aggiornato
- fare una deframmentazione ogni tanto
- disinstallare correttamente i programmi non più necessari
Esistono programmi gratuiti oppure in trial che consentono di rimediare a situazioni critiche.
Comunque il mio elenco di attrezzi è il seguente:
1. Antivirus AVG
2. AntiSpyware Spybot & Destroy
3. Un'utility per la pulizia del regristry
4. Il sito Windows Update
Dopo 2 giorni di lavoro, scansioni, deframmentazioni e pulizie, il PC è tornato in uno stato stabile.
Vediamo se stavolta l'utente sarà più accorto.
Tuesday, August 08, 2006
Delphi: forse si vede il traguardo
Borland (DevCo) sta iniziando a mostrare mostrare i primi segni del nuovo trend. La creazione di ambienti TURBO rivolti sia a chi deve imparare a sviluppare sia a chi deve sviluppare per lavoro dimostra come le voci dei tanti delphiniani siano state accolte. Speriamo che questa idea faccia presa sul mercato.
Subscribe to:
Posts (Atom)