Ho un'applicazione MonoTouch che utilizza un ThreadPool per gestire il numero di thread in background. Se ho spawnato ThreadPool da un thread e all'interno del thread, viene lanciata una richiesta web Async, la richiesta web verrà generata da un secondo thread? in caso affermativo, questo thread verrà rimosso dal ThreadPool?ThreadPool.QueueUserWorkItem con chiamata asincrona all'interno della discussione
Qual è la migliore pratica per una cosa del genere? Se la richiesta web è solo una chiamata sincrona, per ridurre il numero di thread corrente?
ThreadPool.QueueUserWorkItem(callback =>
{
WebClient client = new WebClient();
client.DownloadStringAsync(new Uri("http://www.google.com/"));
client.DownloadStringCompleted += (a,b) => Console.WriteLine("Done");
});
Sì, verrà prelevato dal pool di thread, rischiando esaurimento. Qual è il punto del doppio asincrono in questo particolare scenario? – bzlm
Vuoi dire che vuoi [multitasking mentre sei multitasking?] (Http://encyclopediadramatica.com/Sup_Dawg) –
Grazie per la rapida risposta. La mia attuale implementazione utilizza una classe di utilità che ho creato e che attiva già un webreqeust asincrono, e ora sto introducendo un ThreadPool per gestire gli eventi touch e ho appena realizzato che farò un doppio asincrono. Voglio capire i problemi a lungo termine che potrei incontrare. L'esaurimento sembra essere il più ovvio. –