【发布时间】:2018-07-11 03:14:15
【问题描述】:
我很少有使用线程的经验,所以我的逻辑中可能遗漏了一些非常基本的信息。
无论如何,我正在尝试根据 1000 毫秒计时器更新 GMapMarker。
我的计时器开始:
aTimer = new System.Timers.Timer();
aTimer.Elapsed += OnTimerEvent;
aTimer.Interval = 1000;
aTimer.Enabled = true;
我的更新代码:
int _positionIncriment = 0;
private void OnTimerEvent(object sender, System.Timers.ElapsedEventArgs e)
{
PointLatLng p = m_debugPath[_positionIncriment];
_gpsMarker.Position = p;
_positionIncriment++;
_gmap.ForceUpdateOverlays();
if(_positionIncriment >= m_debugPath.Count)
{
_positionIncriment = 0;
}
}
当我逐步执行此块时,它会在 ForceUpdateOverlays 处停止,并且不再继续前进。 据我所知,GMap 的渲染函数在它自己的线程中,这可能会导致问题。但正如我所说,对线程只有基本的了解,我有点迷失了。 任何帮助都会很棒。
【问题讨论】:
标签: wpf multithreading gmap.net