我正在使用HttpWebRequest将图像从Windows Phone 7应用程序上传到WebDAV服务器 . 上传没有问题,一切正常 . 现在我想为文件上传添加进度条 . 我正在使用此代码将数据写入流:

protected void WriteRequestStream(IAsyncResult result)
    {

        Stream stream = (Stream)result.AsyncState;
        Stream streamResponse = httpWebRequest.EndGetRequestStream(result);

        byte[] content = new byte[4096];
        long totalBytesRead = 0;
        int bytesRead = 0;
        do
        {
            bytesRead = stream.Read(content, 0, content.Length);
            totalBytesRead += bytesRead;
            streamResponse.Write(content, 0, bytesRead);
            streamResponse.Flush();

            if (progressCallback != null)
            {
                float value = (float)totalBytesRead / stream.Length * 100;
                progressCallback(value);
            }
        } while (bytesRead > 0);
        streamResponse.Close();


        httpWebRequest.BeginGetResponse(new AsyncCallback(requestCallback), null);
    }

我在streamResponse对象中写入的数据似乎在发送到WebDAV服务器之前被缓冲 . 从progessbar开始,在上传完成之前快速且100% .

我注意到HttpWebRequest类中没有AllowWriteStreamBuffering属性 . 是否有任何解决方案在WP7中使用HttpWebRequest上传文件并显示上传进度?

谢谢!