サーバーへの非同期呼び出しを使用してデータをアップロードするために Webclient を使用しています。
WebClient webClient = new WebClient();
webClient.UploadDataAsync(uri , "PUT", buffer, userToken);
DatauploadProgress と DatauploadCompleted Events を適切なコールバック関数に添付しました
// Upload Date Progress
webClient.UploadProgressChanged += new
UploadProgressChangedEventHandler(UploadProgressCallback);
// Upload Date Progress
void UploadProgressCallback(object sender, UploadProgressChangedEventArgs e)
{
// Magic goes here
logger.writeToLog("Percentage =" + e.ProgressPercentage);
}
アップロードされたファイルのサイズに関係なく、e.ProgressPercentage常に返さ50れます( 10kb から 60mb までのさまざまなサイズを試しました)。関数自体は 2 回しか呼び出されず (非常に高速です)、パーセンテージは 50 を示します! ..特に大きなファイルでは非論理的です...
e.BytesSentどちらも役に立ちません..常にファイルサイズをバイト単位で表示します:S(例:ファイルサイズが 63,000 の場合、私は取得e.BytesSent = 63,000してe.ProgressPercentage= 50
誰かが私に問題を指摘できますか?