2012-10-14 20 views

Odpowiedz

25

Nie ma takiej nieruchomości, ale można łatwo rozszerzyć WebClient:

public class TimedWebClient: WebClient 
{ 
    // Timeout in milliseconds, default = 600,000 msec 
    public int Timeout { get; set; } 

    public TimedWebClient() 
    { 
     this.Timeout = 600000; 
    } 

    protected override WebRequest GetWebRequest(Uri address) 
    { 
     var objWebRequest= base.GetWebRequest(address); 
     objWebRequest.Timeout = this.Timeout; 
     return objWebRequest; 
    } 
} 

// use 
string s = new TimedWebClient {Timeout = 500}.DownloadString(URL); 
+0

miał problem z popularnego serwisu kursów walut stronie dozwolone conneciton ale ich API nie wysłać odpowiedź - ten mały samorodek to idealna łata, bardzo zobowiązana. –

+1

Teraz patrzę znowu i uczę się wystarczająco dużo, aby wiedzieć, że twoja odpowiedź direktownie odpowiada na moje pytanie. Zmień osprzęt na odpowiedź. – Sakura

7

Jednym ze sposobów na wykonanie tej czynności jest użycie metody DownloadStringAsync w klasie WebClient, a następnie asynchroniczne wywołanie metody CancelAsync po 500 milisekundach. Zobacz paragrafy here, aby uzyskać wskazówki, jak to zrobić.

Zamiast tego można użyć klasy WebRequest, która ma właściwość Timeout. Zobacz przykład kodu: here.