ikarosの作業場

物理シミュレーションを得意とする自称C#エバンジェリスト。「なおこの記事は個人的見解であり、所属する組織の意見とは一切関係がありません」と書かざるを得なくなった悲しみを知れ

Tips:一定時間ごとに処理を行う

前回の記事でちょっとしたミスをしておりました。
一定時間ごとに描画処理をしないとリアルタイムで図形が表示されないのです。

この際ですから一定時間ごとに行う処理について説明します


さてWPF上で一定時間ごとに処理を行うにはDispatcherTimerクラスを用いるのが一般的です。
具体的に運用すると下のようになります。

using System.Windows.Threading;

//-中略-

DispatcherTimer dispatcherTimer;

void call()
{
      //初期化、普通にする際はプロパティはNormalでよいかと
      dispatcherTimer = new DispatcherTimer(DispatcherPriority.Normal);
      //左から 日数、時間、分、秒、ミリ秒で設定 今回は10ミリ秒ごとつまり1秒あたり100回処理します
      dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 10);
      dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
      dispatcherTimer.Start();
}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
      //この中に処理したいことを書いていく

}

以上のような感じです
前回のGenerateMaterialもこの中で処理を行っています

また処理を中断する際は

dispatcherTimer.Stop();

で処理を中断することができます

以上!

当サイトのソースコード及びその他の情報は個人・商用問わず自由に使っていただいてかかまいませんが、当サイトの情報が元で発生したいかなる結果・不利益については責任を負いかねますのでご了承ください