BeginInvoke e QueueUserWorkItem
Don Box rettifica alcune affermazioni del suo libro rispetto all'uso di BeginInvoke, EndInvoke e QueueUserWorkItem. La morale è che l'ultima opzione risulta preferibile, in quanto richiede meno risorse e non obbliga a una chiamata finale (EndInvoke) una volta esaurita la chiamata asincrona.
Anche nel mio libro ho commesso un errore simile, nel senso che non ho precisato che la EndInvoke fosse obbligatoria. Comunque il problema viene da lontano, visto che non era chiaro neanche a molti sviluppatori del Framework quanto questa cosa fosse importante.
In .NET 2.0 gli anonymous methods danno una mano a evitare di rimpiangere la comodità di BeginInvoke per il passaggio dei parametri. Adesso bisogna che qualcuno scriva un libro "definitivo" su tutta la materia...