2010-01-25 4 views
1

내가 서버에 비동기 호출을 사용하여 데이터를 업로드 Webclient에 사용하고 사용시 Webclient에는C 번호 : AsyncUploadData

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 파일 업로드 크기를 할당하려고합니다.

참고 : 내가 콜백 함수가 호출 될 때 전송 바이트를 읽어 e.BytesSent을 사용할 수 있습니다 알고 있지만, 내가 할 노력하고 무엇을하지 않습니다.

답변

2

WebClient은 처리 할 수있는 속성을 노출시키지 않으므로 해당 청크 크기를 정의 할 수 없습니다.

패킷 길이를 제어하려는 경우 사용자 정의 코드로 파일을 전송해야합니다 (예 : 원하는 청크 크기를 순환하여 서버 측에서 System.Web.IHttpHandler을 구현하여 올바른 순서로 파일을 다시 작성해야 함). .

+0

슬프게도 나는 서버를 소유하고 있지 않다. (내 유일한 해결책은 내 콜백 함수가 "무작위로"호출된다는 사실을 받아들이는 것인가?) –

+0

나는 그렇게 생각한다 .../ –

+0

+1은 지금 할 것이다. 마크는 나중에 기적을 바라고 응답했다. (예 : Jon skeet이 .net 프레임 워크를 수정하여 해당 속성을 노출 : D). –