2009-06-11 53 views

回答

18

WebClient.UploadFileAsync将允许你这样做。

WebClient webClient = new WebClient(); 
webClient.UploadFileAsync(address, fileName); 
webClient.UploadProgressChanged += WebClientUploadProgressChanged; 

...

void WebClientUploadProgressChanged(object sender, UploadProgressChangedEventArgs e) 
{ 
     Console.WriteLine("Upload {0}% complete. ", e.ProgressPercentage); 
} 

注意该线程将不会阻止上传了,所以我建议使用:

webClient.UploadFileCompleted += WebClientUploadCompleted; 

...

void WebClientUploadCompleted(object sender, UploadFileCompletedEventArgs e) 
{ 
    // The upload is finished, clean up 
} 
+0

谢谢。我正在使用多线程,文件上传已经在不同的线程上运行。那么我应该只使用Uploadfile方法还是UploadfileAsync方法? – 2009-06-11 17:12:04