C#:使用AsyncUploadData时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 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)。