"経過時間"の判断方法の穴に落ちるべからず |
コード最適化とは違うネタです。すみません。さて。 |
List1 |
DWORD nEnd = ::GetTickCount() + 60000; // 処理開始から60秒後のシステムカウンタを求める while(true){ Retry(); // ←適当な処理 DWORD n = ::GetTickCount(); // 現在のシステムカウンタを取得して、 if( n >= nEnd ) break; // 60秒以上経過してたら抜ける } |
このリスト1にはミスが潜んでいることは気づくでしょうか? |
List2 |
DWORD nBegin = ::GetTickCount(); // 処理開始のシステムカウンタを保持 while(true){ Retry(); // ←適当な処理 DWORD n = ::GetTickCount() - nBegin; // 処理開始から現在までの経過時間を求める if( n >= 60000 ) break; // 60秒以上経過してたら抜ける } |
大事なのは、 |
前のページ 空関数の実体はヘッダに書くべし |
コンテンツのトップ |
次のページ メンバ変数の並びを考慮すべし |