2013-05-28 4 views
5

Ich stelle einen HTTP-Webdienst bereit und einer meiner Benutzer verwendet die C# WebClient-Klasse auf einem Windows 2003-Computer, um Daten von meiner Website abzurufen. Mein Benutzer sagt, dass der WebClient viele Browser-Instanzen erstellt und geschlossen werden muss. Wie kann er den Browser nach der Erstellung schließen?Wie wird der Browser nach dem Erstellen der C# WebClient-Klasse geschlossen?

Sein Code:

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

P. S. Entschuldigung, wenn das Amateur klingt, ich bin sehr neu in C#.

+2

Bitte nicht Entschuldigungen. Wir alle hier zum Lernen. –

Antwort

6

WebClientverwendet keinen Browser - es es nur ein Wrapper um das zugrunde liegende Protokoll. Sie sollten fügen Sie ein using, aber das hat nichts mit „viele Browser-Instanzen“ zu tun:

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

Die WebClient Klasse in .NET Framework auf einige Systemressourcen hält, die das Netzwerk erforderlich sind, um Zugriff Stapeln in Microsoft Windows. Das Verhalten der CLR stellt sicher, dass diese Ressourcen letztendlich bereinigt werden. Wenn Sie jedoch manuell Dispose aufrufen oder die using-statement verwenden, können Sie diese Ressourcen zu vorhersehbaren Zeiten bereinigen. Dies kann die Leistung größerer Programme verbessern.

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

Sie können diese schöne Tutorial verweisen: http://www.dotnetperls.com/webclient

+0

Wenn ich könnte, würde ich Ihnen auch Kredit geben, wie Sie die gleiche Antwort fast unmittelbar nach Marc Gravell gepostet haben. :) – Joshua