2017-07-14 24 views
-4

C#とMicrosoft APIを使用してダウンロードした量を表示するプログラムを作成しましたが、ダウンロードされた正しいサイズは表示されません。たとえば、10 MBファイルには、11 MBがダウンロードされていることが表示されます。
私はまた、私のプログラムのように私に言っているネットワーク状態のウィンドウでチェックしました。
なぜですか? ISPの他のソフトウェアは私と同じように動作しますか?ダウンロードされたサイズが実際よりも大きい

objIPInterfaceStatistics2 = objNetworkInterface[numberinterface].GetIPStatistics(); 
      long newBytesreceived; 
      newBytesreceived = objIPInterfaceStatistics2.BytesReceived; 
      if (checkdata == true) 
      { 
       checkdata = false; 
       newBytesreceived = 0; 
      } 
      long newUsage = newBytesreceived - oldBytesreceived2; 
      trafficusage += newUsage; 
      float converttrafficusage = trafficusage/1000000; 
      oldBytesreceived2 = objIPInterfaceStatistics2.BytesReceived; 
      worker.ReportProgress((int)Math.Ceiling(converttrafficusage)); 
      Thread.Sleep(1000); 
+0

良いでしょう、確かに私達はちょうどあなたが書いたコードが何をするかを想像するためのものとどのように/あなたが持っている場合はされています何か問題でも?あなたが間違って行った作業を手助けしたい場合は、何らかの種類の[mcve]を作成してみてください。 –

+1

あなたはネットワークのオーバーヘッドを考慮する必要があります – ChrisBint

+0

彼らは同じ "尺度"を使用していますか?彼らはおそらくMegaBytesではなくMibiBytesでサイズを表示しています – arracso

答えて

1

私は2つの値が異なって計算されると仮定できます。 一般に、1メガバイトは1.000.000バイトを意味し、一方1メガバイトは2^20バイト=> 1.048.576バイトを指す。通常は、メガバイトが使用されるため、計算が簡単です。

ダウンロードpackagsが計算されていますから、いくつかのサンプルコードが^^

関連する問題