6

我提供了一个 HTTP Web 服务,我的一个用户在 Windows 2003 机器上使用 C# WebClient 类从我的网站检索数据。我的用户说 WebClient 正在创建许多浏览器实例并且需要关闭。创建后如何关闭浏览器?

他的代码:

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

ps 抱歉,如果这听起来很业余,我对 C# 很陌生。

4

2 回答 2

8

WebClient 不使用浏览器- 它只是底层协议的包装器。您应该添加一个using,但这与“许多浏览器实例”无关:

using(WebClient client = new WebClient())
{
    return client.DownloadString("http://abcabc.com/abc");
}
于 2013-05-28T07:09:45.307 回答
2

.NET Framework 中的WebClient类拥有访问 Microsoft Windows 中的网络堆栈所需的一些系统资源。CLR 的行为将确保最终清理这些资源。

但是,如果您手动调用Dispose或使用using-statement,则可以在更可预测的时间清理这些资源。这可以提高大型程序的性能。

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

你可以参考这个漂亮的教程: http: //www.dotnetperls.com/webclient

于 2013-05-28T07:16:57.270 回答