我正在开发一个C# Winforms应用程序,其中一部分是使用AsyncUpload将文件上传到Web服务器(需要使用进度回调),在C#程序中,我有一个简单的for循环调用上传函数。
for(int i=0;i < 10 ; i++)
{
Uploadfun();
}
这个函数有一些神奇的效果:
Uploadfun()
{
// Logic comes here
// webClient.UploadFileAsync runs a 2nd thread to perform upload ..
webClient.UploadFileAsync(uri, "PUT", fileNameOnHD);
}
当异步上传完成时调用的回调函数
Upload_Completed_callback()
{
//Callback event
}
编辑
逻辑序列:
- 从循环中调用了Fun函数。
- 执行并完成Fun函数的逻辑。
- 返回到for循环。
- 当UploadFileAsync(在另一个线程中运行某些逻辑)结束时,最终将调用回调函数。
问题出现在第三步,当执行返回到for循环时,我需要阻止循环继续执行,直到回调被调用。
callback
函数被调用之前,循环不会继续执行。如果我理解有误,请给出更详细的解释。 - Darin DimitrovUploadFile
的同步版本,并在其上使用异步API(如果需要)。 - Mehrdad Afshari