2013-05-28 13 views
5

Fornisco un servizio Web HTTP e uno dei miei utenti utilizza la classe C# WebClient su un computer Windows 2003 per recuperare i dati dal mio sito Web. Il mio utente dice che WebClient sta creando molte istanze del browser e deve essere chiuso. Come può chiudere il browser dopo che è stato creato?Come chiudere il browser dopo aver creato la classe C# WebClient?

il suo codice:

Byte[] requestedHTML; 
WebClient client = new WebClient(); 
requestedHTML = client.DownloadData("http://abcabc.com/abc"); 
UTF8Encoding objUTF8 = new UTF8Encoding(); 
string returnMessage = objUTF8.GetString(requestedHTML); 

P.S. Mi scuso se questo suona amatoriale, sono molto nuovo di C#.

+2

prega non lo fanno scuse. Siamo tutti qui per l'apprendimento. –

risposta

6

WebClientnon utilizza un browser - si tratta solo di un wrapper attorno al protocollo sottostante. Si dovrebbe aggiungere un using, ma questo non ha nulla a che fare con "molte istanze del browser":

using(WebClient client = new WebClient()) 
{ 
    return client.DownloadString("http://abcabc.com/abc"); 
} 
2

Il WebClient classe in .NET Framework tiene su alcune risorse di sistema che sono necessari per l'accesso alla rete impilare in Microsoft Windows. Il comportamento del CLR garantirà che queste risorse vengano alla fine eliminate.

Tuttavia, se si chiama manualmente Dispose o si utilizza using-statement, è possibile rendere tali risorse pulite in tempi più prevedibili. Questo può migliorare le prestazioni di programmi più grandi.

using(WebClient client = new WebClient()) 
{ 
    // Do your operations here... 
} 

è possibile fare riferimento questo bellissimo tutorial: http://www.dotnetperls.com/webclient

+0

Se potessi, ti darei anche credito come hai postato la stessa risposta quasi immediatamente dopo Marc Gravell. :) – Joshua

Problemi correlati