2013-05-28 29 views
5

Tôi cung cấp dịch vụ web HTTP và một trong những người dùng của tôi đang sử dụng lớp C# WebClient trên máy Windows 2003 để truy xuất dữ liệu từ trang web của tôi. Người dùng của tôi nói rằng WebClient đang tạo ra nhiều phiên bản trình duyệt và cần phải được đóng lại. Làm cách nào để đóng trình duyệt sau khi được tạo?Làm thế nào để đóng trình duyệt sau khi tạo lớp C# WebClient?

đang Ngài:

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

tái bút: Xin lỗi nếu điều này nghe có vẻ nghiệp dư, tôi rất mới với C#.

+2

Xin đừng xin lỗi. Tất cả chúng ta ở đây để học tập. –

Trả lời

6

WebClientkhông sử dụng trình duyệt - nó chỉ là trình bao bọc xung quanh giao thức cơ bản. Bạn nên thêm một using, nhưng điều này không có gì để làm với "nhiều trường hợp trình duyệt":

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

Các WebClient lớp trong .NET Framework nắm giữ lên một số tài nguyên hệ thống được yêu cầu để truy cập vào mạng ngăn xếp trong Microsoft Windows. Hành vi của CLR sẽ đảm bảo các tài nguyên này cuối cùng được dọn sạch.

Tuy nhiên, nếu bạn gọi theo cách thủ công Dispose hoặc sử dụng using-statement, bạn có thể làm cho các tài nguyên này được dọn sạch vào thời gian dự đoán nhiều hơn. Điều này có thể cải thiện hiệu suất của các chương trình lớn hơn.

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

Bạn có thể tham khảo hướng dẫn xinh đẹp này: http://www.dotnetperls.com/webclient

+0

Nếu tôi có thể, tôi cũng sẽ cung cấp tín dụng cho bạn khi bạn đăng câu trả lời tương tự gần như ngay lập tức sau Marc Gravell. :) – Joshua

Các vấn đề liên quan