あなたが説明していることは、頑強に機能する可能性は低いようです。簡単な要約は次のとおりです。
私の経験では、タイマーは一般的に正確ではありません。タイマーメッセージはWindowsメッセージポンプを通過するため、WindowsUIがメッセージを処理する速度でしか移動できません。メッセージを妨害するアプリケーションはタイマーを途切れさせますが、注意深い作業でこれを防ぐことができます。ここでのタイマーに関するいくつかの古典的な議論:ダミーのためのWinformsタイマー
一般に、リストは画像を保存するための非常に非効率的な方法です。1秒あたり60フレームの1秒間のアニメーションの場合、60枚の画像をメモリに保持し、それぞれを個別に解凍する必要があります。
考えられる解決策とそれに伴うトレードオフを次に示します。
フルモーションビデオ
MediaElement
フォームにフルモーションビデオを表示する場合は、 (WPFアプリケーションの場合:http ://www.c-sharpcorner.com/uploadfile/dpatra/media-element-in-wpf/ )の使用を検討する必要があります。またはMediaPlayer
オブジェクト(WinFormsアプリケーションの場合:http://msdn.microsoft.com/en-us/library/bb383953(v = vs.90 ) .aspx )。
これにより、非常に高品質の画像、さまざまな圧縮を含む長いビデオを再生し、再生を任意に開始または停止することができます。ただし、フルビデオプレーヤーの起動とメモリ使用量の要件は、画面に1つの画像を表示するだけではありません。アプリケーションがビデオサブシステムを初期化するのに少し時間がかかることがわかりますが、これは煩わしいかもしれません。
アニメーション画像
WindowsフォームまたはWPFのピクチャーボックスにアニメーション画像を表示することができます。通常はGIFアニメーションファイルを使用して、アニメーション画像を生成するだけです。これは、ほとんどの単純なアニメーションでスムーズに機能し、次のようなWebサイトから無料で使用できるアニメーションGIFを取得できます。http: //www.chimply.com/Generator
フォームにアニメーションGIFを配置する方法のウォークスルーは次のとおりです。http://trompelecode.com/2010/12/animated-progress-indicator-in-csharp-windows-forms/
スプライトアニメーション
各画像を正確に表現する必要があり(単に魅力的に見せようとしている場合は必要ありません)、ビデオシステムのオーバーヘッドは必要ないとします(これは、再生するだけの場合は問題ありません)。 1〜2秒分のアニメーション)。次に、単一の合成「スプライト」イメージを作成します。これにより、アプリケーションのメモリオーバーヘッド要件が軽減され、ファイルの解凍にかかる時間が短縮されます。
たとえば、PNGスプライトを生成するWebサイトは次のとおりです。http ://wearekiss.com/spritepad
スプライトを使用して画像を生成したら、それを画像ボックス内に配置し、画像ボックス内の画像の相対位置を変更して画像をアニメーション化できます。これを実現する方法のウォークスルーは次のとおりです。オフセット付きのC#画像ボックスロード画像
概要
アニメーション画像の表示を選択する方法には、いくつかのトレードオフがあります。私は自分のために可能な限り最も単純な解決策を選ぶのが好きです-そして私の場合、私はアニメーションGIF画像を使うのが好きです。アニメーションで頑張ってください!