0
リモートファイルifstream
からローカルファイルofstream
にデータをコピーしているVisual Studio 2008 C++アプリケーションがあります。転送データをUIに報告する
void MyTransferThread()
{
std::ofstream local_file(/*...*/);
std::ifstream remote_file(/*...*/);
// an arbitrary block size
const size_t buffer_size = 4096;
char buffer[ buffer_size ];
while(remote_file)
{
remote_file.read(buffer, buffer_size);
int read = remote_file.gcount();
local_file.write(buffer, read);
}
}
転送速度に最小限の影響を有しながら、別のUIスレッドに(バイト/秒で)転送の現在のレートを報告するための最良の方法は何ですか?:転送コードは次のように基本的に見えますか
私は実際にスループットをどのように計算するかについては言及していません。私はそれが計算されると、報告方法を探しています。たとえば、現在のスループットを揮発性メンバー変数に格納し、他のスレッドがそれをクエリしたり、PostMessageを使用してUIに報告したり、スレッドが呼び出したコールバック関数をUIに登録させたりする方が良いでしょうか? – PaulH