在BackgroundWorker
線程(以RunWorkerAsync()
開頭)中,我想通過HttpWebRequest
從服務器下載文件。只要我呼叫GetResponse()
,從服務器下載文件時GUI仍然凍結。這實際上不應該發生,因爲BackgroundWorker與具有某些裝飾(如進度處理和取消)的線程差不多一樣。任何人都可以解釋爲什麼會發生這種情況嗎?在BackgroundWorker線程中下載文件時GUI凍結
下面的代碼片段:
if ((lRequest = (HttpWebRequest)WebRequest.Create(lURL)) != null)
{
if ((lResponse = lRequest.GetResponse()) != null)
{
lRemoteStream = lResponse.GetResponseStream();
lLocalStream = File.Create(lTempFileName);
do
{
lBytesRead = lRemoteStream.Read(lTemp, 0, lTemp.Length);
lLocalStream.Write(lTemp, 0, lBytesRead);
} while (lBytesRead > 0);
}
}
此代碼是什麼? – SLaks 2011-05-20 18:05:45
你已經發布的代碼沒有問題,但它如何以及在哪裏被調用,可能會有問題,所以請發佈你如何調用此代碼的代碼。 – 2011-05-20 18:14:34