mercoledì 14 febbraio 2007
In Word 2003 l'opzione per abilitare la sillabazione del documento era contenuta nel menu Strumenti, vicino ai comandi Thesaurus e Imposta lingua. In Word 2007 questi ultimi sono ancora insieme, all'interno del ribbon Revisione. L'opzione Sillabazione, invece, è stata spostata in Layout di pagina:

La prossima versione del .NET Compact Framework, targata 3.5, conterrà alcuni namespace prelevati direttamente dalla versione Full: tra gli altri, troveremo System.Media e System.IO.Compression, che saranno completamente portati sulla piattaforma mobile.
Come segnalato in questo post, è stata da poco rilasciata la versione 7.5.441 di AVG Free, che risolve l'incompatibilità con Windows Vista a causa della quale in fase di avvio del sistema compariva il messaggio Could not initialize AVG antivirus kernel interface. Application cannot run. Rimangono comunque gli stessi problemi di cui avevo già parlato: il modulo che gestisce l'integrazione con Explorer e quello per la scansione della posta in entrata non funzionano correttamente. Solo eseguendo il programma come amministratore si ripristinano tutte le caratteristiche dell'antivirus. Di conseguenza, affinché l'antivirus venga eseguito correttamente è necessario passare ancora per l'Utilità di pianificazione, anche se adesso non è più necessario impostare un ritardo per l'esecuzione
(maggiori informazioni qui).
Windows Vista offre diverse opzioni quando si deve interrompere la propria sessione di lavoro, come è possibile vedere qui sotto:
Tutte queste modalità di spegnimento del computer possono causare un po' di confusione... Questo post cerca di fare un po' di chiarezza sull'argomento.
Abbiamo una classe che dispone di un metodo Start il quale, una volta richiamato, esegue un'operazione piuttosto complessa in un thread separato. Quest'ultimo può generare alcuni eventi per notificare all'applicazione che utilizza tale classe il verificarsi di certe condizioni. In una situazione del genere, poiché gli eventi sono lanciati da un thread separato, se nell'handler dell'evento si vuole modificare qualche oggetto dell'interfaccia, bisogna usare il meccanismo di Invoke per avere un accesso thread-safe ai controlli. Così facendo, in pratica sono necessarie due routine per ogni evento che si vuole gestire.
Se si utilizza il .NET Framework 2.0, è possibile adottare una soluzione alternativa che permette di lanciare gli eventi direttamente nel thread che gestisce l'interfaccia utente, risparmiando quindi l'utilizzo di Invoke. Bisogna innanzi tutto strutturare la classe che contiene il thread nel modo seguente:
1 using System;
2 using System.Threading;
3 using System.ComponentModel;
4
5 public class Worker
6 {
7 private AsyncOperation operation;
8 private SendOrPostCallback callback;
9
10 public event EventHandler MyEvent;
11
12 public Worker()
13 {
14 callback = new SendOrPostCallback(Callback);
15 }
16
17 public void Start(object stateInfo)
18 {
19 operation = AsyncOperationManager.CreateOperation(null);
20 Thread t = new Thread(DoWork);
21 t.Start(stateInfo);
22 }
23
24 private void DoWork(object stateInfo)
25 {
26 for (int i = 0; i < 5; i++)
27 {
28 Thread.Sleep(1000);
29 operation.Post(callback, i);
30 }
31 }
32
33 private void Callback(object stateInfo)
34 {
35 //Questo metodo viene eseguito nel thread che gestisce l'interfaccia.
36 int value = (int)stateInfo;
37 if (MyEvent != null)
38 MyEvent(this, EventArgs.Empty);
39 }
40 }
Il suo funzionamento ruota intorno agli oggetti AsyncOperation e SendOrPostCallback. L'utilizzo di questa classe è semplice:
Worker w = new Worker();
w.MyEvent += new EventHandler(w_MyEvent);
w.Start(null);
//...
int i = 0;
void w_MyEvent(object sender, EventArgs e)
{
label1.Text = (++i).ToString(); //Corretto.
}
L'evento MyEvent viene generato nello stesso thread in cui gira l'interfaccia utente (righe 33-39), quindi nella sua routine di gestione è possibile modificare direttamente gli oggetti del form, senza incorrere nell'errore InvalidOperationException.
Mi permetto di dare un piccolo contributo alle mitiche leggi di Damiani sui bytes:
Chuck Norris ha contato fino ad infinito. Due volte.
Da ragazzo Chuck Norris si cimentò con il Pascal: il primo programmino che fece lo chiamo' "Matrix".
Chuck Norris ha ricevuto il nobel per la medicina dopo essere riuscito a clonare la pecora Dolly con Norton Ghost.
Tratte dal sito We Love Chuck Norris... Se non l'avete mai visitato, vi consiglio di farlo al più presto, è spettacolare 
Per impostazioni predefinita di Windows Vista, il pulsante di alimentazione del menu Start (a destra della casella di ricerca) salva la sessione corrente e imposta la modalità a basso consumo, grazie alla quale è possibile riprendere il lavoro in pochi secondi. E' possibile cambiare il comportamento di questo pulsante agendo sulle Opzioni risparmio energia del Pannello di controllo. Fare clic sul link Modifica impostazioni combinazione corrispondente alla combinazione per il risparmio energia corrente, quindi fare clic su Cambia impostazioni avanzate risparmio energia. A questo punto raggiungere l'opzione visibile in figura:
Al posto di Sospensione è possibile specificare Arresta il sistema oppure Iberna. Dopo aver selezionato l'opzione desiderata, facendo clic su OK o su Applica il pulsante di alimentazione del menu Start assumerà la funzione indicata.