絵コンテを使って写真をアニメーション化しています。アニメーションごとに計算を含む操作を実行してから、別のアニメーションを実行したいので、StoryBoardの完成したイベントを使用する必要があると思います。MyStoryboard.Completed += storyboard_Completed;
私が興味を持っているのは、現在のストーリーボードで次のアニメーションを開始する必要があるStoryboard_Completed Event
かどうかです。また、Application.Current.Dispatcherオブジェクトを使用して別のスレッドで最初のアニメーションを開始した場合、何か影響はありますか?
Application.Current.Dispatcherを使用して別のスレッドでStoryBoard.Begin()を呼び出した場合、Storyboard_CompletedイベントもUIスレッドで呼び出されますか?この場合でも、次のアニメーションを別のディスパッチャー呼び出し内にラップする必要がありますか?
private void Story_Completed(object sender, EventArgs e)
{
Application.Current.Dispatcher.Invoke((Action)delegate()
{
SomeNewStoryBoardAnimation.Begin();
}
}
これは正しいです?または、ストーリーボードが終了したかどうかを確認し、その直後に次の一連の計算とストーリーボードアニメーションを開始するためのより良い方法はありますか?
単一のバックグラウンドワーカーを使用してすべてのアニメーションと計算を順番に処理することを考えましたが、次の計算とアニメーションのセットを開始する前に、アニメーションが完了するのを「待つ」方法も考えています。Thread.sleep
アニメーションが完了するのを待っている間にBackGroundWorkerがいるのは正常ですか?