读书人

俺最近学C#写了一个文件上载器可是在

发布时间: 2012-07-20 10:38:30 作者: rapoo

俺最近学C#,写了一个文件下载器,可是在下载的过程中程序往往一直卡住,直到下载差不多的时候画面又恢复正常!有何高招呢大家

C# code
 public static string GetHtml(string URL, string cookie, out string header, string server)        {            HttpWebRequest httpWebRequest;            HttpWebResponse webResponse;            Stream getStream;            StreamReader streamReader;            string getString = "";            httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(URL);            httpWebRequest.Accept = "*/*";            httpWebRequest.Referer = "http://www.xxxx.com.cn/Index/logincheck";            CookieContainer co = new CookieContainer();            co.SetCookies(new Uri(server), cookie);            httpWebRequest.CookieContainer = co;            httpWebRequest.UserAgent =                "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET4.0C; .NET4.0E; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";            httpWebRequest.Method = "GET";            webResponse = (HttpWebResponse)httpWebRequest.GetResponse();            header = webResponse.Headers.ToString();            getStream = webResponse.GetResponseStream();            streamReader = new StreamReader(getStream, Encoding.UTF8);            getString = streamReader.ReadToEnd();                  streamReader.Close();            getStream.Close();            return getString;        }

这是俺使用的一个方法。。

[解决办法]
把下载进程弄成后台进程,就能解决问题.

但是实际意义不大.
[解决办法]
异步下载 或者将同步下载放在单独线程/线程池

.Begin .End 开头的 是 异步函数 可以参看msdn库
[解决办法]
http://msdn.microsoft.com/zh-cn/library/ms229675(v=vs.80).aspx

说的再多,也没msdn说的全,希望能给你帮助
[解决办法]
同步执行就是这个样子了。

看看这些文章,会有帮助:
C#多线程与UI响应 防界面假死
http://blog.csdn.net/nnsword/article/details/5543464

C#使用委托与多线程,解决界面假死
http://wangheng.org/use-multiple-threads-resolve-interface-feign-death.html

读书人网 >C#

热点推荐