189 messaggi dal 26 marzo 2001
Ciao,

sto sviluppando una Windows Store app che chiama dei servizi web.
Tipicamente le pagine dell'applicazione possono chiamare o uno o più servizi, più volte.
Per chiamare questi servizi utilizzo la classe HttpClient che implementa IDisposable.

Il mio dubbio è se instanziare ad ogni chiamata di un servizio la classe HttpClient utilizzando un blocco using oppure se avere un'instanza privata che inizializzo nel metodo OnNavigatedTo e distruggo nel metodo OnNavigatedFrom della pagina, chiamando prima il metodo Dispose. In quest'ultimo caso, ho anche la possibilità di chiamare il metodo CancelPendingRequests di HttpClient per interrompere eventualmente chiamate pendenti quando si naviga verso un'altra pagina.

Tipicamente preferisco sempre fare la dispose di risorse il prima possibile e quindi mi verrebbe da instanziare ad ogni chiamata del servizio la classe HttpClient. Il mio dubbio è legato ad eventuali problemi di performance (in particolare su dispositivi come tablet) e a cosa succede se la chiamata al servizio non è completata e navigo su un'altra pagina (si genera un'eccezione?).
Modificato da OasisLiveForever il 28 dicembre 2012 07.03 -
noi abbiamo un wrapper che fa esattamente quello che dici, nelle nostre app, così che quando navighi via puoi cancellare in un colpo solo tutte le richieste in pending. la differenza è che non usiamo una sola istanza, ma n che poi cancelliamo (mantenendo una semplice lista). evita chiamate inutili se l'utente cambia vista

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
189 messaggi dal 26 marzo 2001
Ciao,

avete pubblicato sul sito per caso qualche articolo o esempio di applicazione da cui prendere spunto?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.