Programmazione asincrona codice misto Sviluppando codice asincrono si tende spesso ad implementare buona parte delle funzioni sfruttando le potenzialità fornite dall’utilizzo di async ed await. Un pò come se rendere i comportamenti asincroni fosse in qualche modo “contagioso”. Se all’interno del codice vengono sviluppate fuzioni sincrone, lo sviluppo “misto” può generare problematiche nel flusso di esecuzione e nelle performance della […]
Sharepoint e campi DateTime Recentemente ho dovuto mettere mano ad un’applicazione SharePoint Online ed il render di campi di tipo DateTime. L’utilizzo di campi di tipo data generalmente può generare non pochi problemi dovuti alle diverse timezone e ai formati utilizzati dallo storage. In particolar modo, la mia applicazione ha il compito di visualizzare una serie di appuntamenti (con […]
Programmazione Asincrona eccezioni multiple Gestire eccezioni all’interno di codice asincrono non sempre porta ai risultati attesi. Analizziamo il seguente codice asincrono public static Task<int> Foo() { return Task<int>.Factory.StartNew(() => { throw new Exception(“From Foo!”); }); } public static Task<int> Bar() { return Task<int>.Factory.StartNew(() => { throw new Exception(“From Bar!”); }); }
Programmazione Asincrona e void Uno degli errori da evitare nella programmazione asincrona in c# (tramite async e await) è quello di creare metodi che restituiscono void. L’utilizzo di metodi asincroni che ritornano uno void (async void) introducono due tipologie di problemi: non è possibile determinare quando il task è stato completato le eccezioni che vengono generate al suo interno producono […]
Programmazione Asincrona con Async e Await L’introduzione di async e await consente di scrivere codice asincrono, come se si trattasse di codice sincrono Non sempre però l’utilizzo della Programmazione Asincrona con Async e Await viene utilizzata in maniera appropriata: è necessario seguire alcune linee guida per evitare di incappare in problemi non sempre di facili risoluzione. Nei prossimi articoli tratteremo alcuni errori […]