C#:使用AsyncUploadData时Webclient分配块大小
我使用Webclient通过异步调用将数据上传到服务器C#:使用AsyncUploadData时Webclient分配块大小,c#,webclient,uploaddataasync,C#,Webclient,Uploaddataasync,我使用Webclient通过异步调用将数据上传到服务器 WebClient webClient = new WebClient(); webClient.UploadDataAsync(uri , "PUT", buffer, userToken); 我已将DatauploadProgress和DatauploadCompleted事件附加到相应的回调函数 // Upload Date Progress webClient.UploadProgre
WebClient webClient = new WebClient();
webClient.UploadDataAsync(uri , "PUT", buffer, userToken);
我已将DatauploadProgress和DatauploadCompleted事件附加到相应的回调函数
// Upload Date Progress
webClient.UploadProgressChanged += new
UploadProgressChangedEventHandler(UploadProgressCallback);
// Upload Date Progress
void UploadProgressCallback(object sender, UploadProgressChangedEventArgs e)
{
// Magic goes here
}
我试图分配chunck/partial file upload size,以使回调函数在选定的周期性时间被调用
注:
我知道我可以使用
e.BytesSent
读取调用回调函数时发送的字节,但这不是我要做的。您不能定义块大小,因为WebClient
不公开任何属性来处理
如果您想控制数据包长度,您需要通过自定义代码传输文件,即通过循环所需的数据块大小,并在服务器端实现
System.Web.IHttpHandler
以正确顺序重建文件。遗憾的是,我没有服务器:(,所以我唯一的解决方案是接受这样一个事实,即我的回调函数将被“随机”调用?+1,稍后将标记为应答,希望出现奇迹(例如:Jon skeet修改.net Framework以公开这样的属性:D)。