2011-01-26 2 views
5

Sto leggendo rss con il lettore xml.Come specificare il timeout per XmlReader?

E quando l'url è male ci vogliono 60 secondi per fallire. Come posso specificare il timeout?

using (XmlReader reader = XmlReader.Create(url, settings)) 

risposta

15

Non so se è possibile modificare il timeout XmlReader, ma forse si può fare qualcosa di diverso:

Usa WebRequest per ottenere il codice XML (questo ha una proprietà Timeout) e si nutrono XmlReader questo xml dopo averlo ricevuto:

WebRequest request = WebRequest.Create(url); 
request.Timeout = 5000; 

using (WebResponse response = request.GetResponse()) 
using (XmlReader reader = XmlReader.Create(response.GetResponseStream())) 
{ 
    // Blah blah... 
} 
+0

Si potrebbe anche voler guardare in threading a girare questo processo fuori su un thread in background in modo da non bloccare la propria interfaccia utente, se questo è un problema nel tuo caso . – Scott

+0

mi aspettavo che questa fosse solo un'opzione. Grazie per il codice dettagliato – st78

+0

Ottima idea. Grazie. –

0

Passare il proprio stream alla chiamata XmlReader.Create. Imposta il timeout che preferisci.