我正在使用与C#结合的php脚本将文件从Windows中的文件夹上载到Web服务器目录中。它的工作原理,但是,当上传开始时,应用程序冻结。使用php上传文件 - 冻结
private void submitExam_Click(object sender, EventArgs e)
{
// loop through and upload our sound bits
string[] files = System.IO.Directory.GetFiles(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments) + "\\wav", "*.wav", System.IO.SearchOption.AllDirectories);
foreach (string soundBit in files)
{
System.Net.WebClient Client = new System.Net.WebClient();
Client.Headers.Add("Content-Type", "audio/mpeg");
byte[] result = Client.UploadFile("http://website.com/uploadFiles.php", "POST", soundBit);
}
processing f2 = new processing();
f2.MdiParent = this.ParentForm;
f2.StartPosition = FormStartPosition.CenterScreen;
f2.Show();
this.Hide();
}
在C#应用程序,点击提交按钮时,上载开始,它显示了显示一条消息说文件正在上传新的表单页面。我遇到的问题是,当按下提交按钮时,processing
表单不会显示约10秒钟左右,直到上传完成或接近完成。
有没有什么方法可以显示处理页面,同时上传文件而不会冻结应用程序?
试试这个控制:http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AsyncFileUpload/AsyncFileUpload.aspx编辑:你在做什么基本上寻找是一种上传文件的异步方式,然后通知它已完成上传。有很多方法可以做到,只需搜索“asp.net异步文件上传” –
@JesseSmith,感谢您的建议,但是,我没有使用ASP,而是一个桌面应用程序。 – Spencer
啊!授予@Ralph说,这个问题是由阻塞UI线程引起的 - 最终结果仍然是某种形式的异步 –