我有一个如下方法来获取远程URL字符串。
public string FnGetURLContent(string _QsURL)
{
string _Return = "";
try
{
HttpWebRequest _HttpWebRequest = (HttpWebRequest)WebRequest.Create(_QsURL);
_HttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)";
_HttpWebRequest.MaximumAutomaticRedirections = 4;
_HttpWebRequest.MaximumResponseHeadersLength = 4;
_HttpWebRequest.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse _HttpWebResponse = (HttpWebResponse)_HttpWebRequest.GetResponse();
Stream receiveStream = _HttpWebResponse.GetResponseStream();
encoding format.
StreamReader _StreamReader = new StreamReader(receiveStream, Encoding.UTF8);
_Return = _StreamReader.ReadToEnd();
_HttpWebResponse.Close();
_StreamReader.Close();
}
catch (WebException _WebException)
{
_Return = "";
}
return _Return;
}
当方法运行时,表单UI冻结,直到方法完成处理。 我该如何改进代码?
提前谢谢
答案 0 :(得分:2)
您可以使用异步background worker“改进代码”。请参阅class here
答案 1 :(得分:2)
您可以使用_HttpWebRequest.GetResponseAsync()并在收到响应数据后在单独的线程上处理。
答案 2 :(得分:0)
有很多方法可以做到这一点。你可以这样做:
答案 3 :(得分:0)
这是node.js的生活目的。关键是要使这个异步。对于您的情况,请参阅msdn docs here。