C# &引用;“动画制作”;Silverlight中的地图多段线

C# &引用;“动画制作”;Silverlight中的地图多段线,c#,multithreading,silverlight,bing-maps,C#,Multithreading,Silverlight,Bing Maps,我需要设置贴图多段线的动画,以便在给定的事件中,开始端可以沿拉链拉到结束端。我考虑的方法是设置帧的动画,这样我可以将贴图多段线划分为n个段,并按照我选择的逻辑减少每个帧之间的时间跨度ts(为了保持简单,让我们在每个周期后只说ts=ts/2) 我知道不能为MapPolyLine设置动画,但可以通过更新端点位置的纬度和经度来更改线条的外观。我的问题与时间有关。我在多线程方面的经验很少,所以我不想冒险让用户遇到难以诊断的基于线程的错误。我应该: 使用简单的Dispatcher和tick方法 使用Ba

我需要设置贴图多段线的动画,以便在给定的事件中,开始端可以沿拉链拉到结束端。我考虑的方法是设置帧的动画,这样我可以将贴图多段线划分为n个段,并按照我选择的逻辑减少每个帧之间的时间跨度ts(为了保持简单,让我们在每个周期后只说ts=ts/2)

我知道不能为MapPolyLine设置动画,但可以通过更新端点位置的纬度和经度来更改线条的外观。我的问题与时间有关。我在多线程方面的经验很少,所以我不想冒险让用户遇到难以诊断的基于线程的错误。我应该:

  • 使用简单的Dispatcher和tick方法
  • 使用BackgroundWorker,在每次时间跨度过去时报告进度
  • 使用虚拟动画并将事件处理程序附加到渲染事件
  • 除上述选项之外的解决方案

提前感谢您的帮助

考虑到动画将要花费的时间,决定使用Dispatchermer-通过创建一个单独的动画对象来保存状态和它自己的调度计时器,它最终比使用单独的线程更有效,因为回调意味着中断主UI线程,并且根据要求,这些动画中有2-3个以上同时出现的可能性很小,95%或更大的情况下一次只有一个动画。

我应该补充一点,目前,我倾向于根据Mike Snow的文章使用虚拟动画: