1

移動するニュース バー ラベルを含むデスクトップ アプリケーションを C# で作成しています。これらのラベルを移動するためにタイマーを使用していますが、問題は、このタイマーの間隔を低くすると (たとえば 1 ~ 10)、アプリケーションの CPU 使用率が非常に高くなり、高くすると (200 - 500 ) ラベルの動きが断続的になったり、スムーズに動かなくなったりして、ユーザーが快適にニュースを読むことができない場合があります。

((詳細情報)) Windowsフォームアプリケーションです。ラベルを移動する方法は次のとおりです。RSS フィードからのニュース項目は、リンクラベルのグループで表されます。これらのリンクラベルはすべてフローレイアウト コンテナーに追加されます。タイマーは、flowlayout コンテナー全体を移動します。私の知る限り、この方法がニュース バーを作成する最良の方法であることがわかりました。より良いアイデアまたは解決策があれば、助けてください。

4

4 に答える 4

0

問題は、タイマーを使用してティッカーを移動し、データを入力していることだと思いますか?

タイマーを使用してビューをスクロールしたい場合は、それで問題ありません。コードは非常に軽量である必要があります (垂直位置または水平位置を更新して戻るだけです)。ただし、より良いアプローチは、「ゲームループ」のようなものを使用して、後の更新頻度を達成することです(各反復内で、ビューを移動するのにかかる時間、次に残りのミリ秒数の間スリープします目標周波数に到達します。)

別のタイマー/スレッドからデータを更新します。

于 2010-05-28T23:52:28.983 に答える
0

タイマー間隔は何を表していますか? ミリ秒の場合は、必要な 1 秒あたりの更新数を 1000 で割り、タイマー レートを取得できます。

Sleep(100) などを使用することもできますが、更新でやりすぎている可能性があります。おそらく、「重要な変更」を100回の更新ごとに行うなど、はるかに少ない頻度で行うか、それらを独自のタイマーに入れて、スクロールをより頻繁に更新するためにできるだけ少なくすることができます。

毎秒 100 回または 1000 回の更新を行うように設定した場合、アプリケーションが多くの CPU を消費することは驚くべきことではありません。:)

于 2010-05-28T23:49:23.797 に答える