GMap.NET WPF 标记计时器更新

兆字节

我使用线程的经验很少,所以我的逻辑中可能缺少一些非常基本的信息。

无论如何,我正在尝试基于 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 的渲染函数在它自己的线程中,这可能会导致问题......但正如我所说,只有对线程有基本的了解,我有点迷茫。任何帮助都会很棒。

克莱门斯

使用 DispatcherTimer 而不是 Timer。它的 Tick 事件在 UI 线程中被触发:

using System.Windows.Threading;
...

aTimer = new DispatcherTimer();
aTimer.Tick += OnTimerEvent;
aTimer.Interval = TimeSpan.FromSeconds(1);
aTimer.IsEnabled = true; // or aTimer.Start();
...

private void OnTimerEvent(object sender, EventArgs e)
{
    ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Gmap.net缓存如何工作?

来自分类Dev

WPF中分派器计时器的性能

来自分类Dev

地图控件Gmap.net崩溃

来自分类Dev

如何打印GMap.NET地图?

来自分类Dev

在WPF窗口中显示正在运行的计时器

来自分类Dev

从计时器线程更新WPF UI

来自分类Dev

自动打开新窗口,无需计时器WPF

来自分类Dev

在MVVM-WPF中更新DataContext的计时器

来自分类Dev

使用WPF MVVM实施和显示UI计时器

来自分类Dev

GMap.Net标记最初处于错误位置

来自分类Dev

Gmap.net标记删除

来自分类Dev

GMap.Net缩放问题鼠标悬停/悬停标记

来自分类Dev

计时器的ASP.NET更新数据列表不起作用

来自分类Dev

Gmap.net中的图像tiff

来自分类Dev

WPF C#-计时器倒数

来自分类Dev

Gmap.net缓存如何工作?

来自分类Dev

VB.net-计时器未更新

来自分类Dev

WPF中Dispatcher计时器的性能

来自分类Dev

地图控件Gmap.net崩溃

来自分类Dev

如何打印GMap.NET地图?

来自分类Dev

GMap.NET获得经度和纬度

来自分类Dev

使用CMAP的GMAP.NET,如何在不调用地图MouseClick的情况下使用标记OnMarkerClick?

来自分类Dev

移除gmap.net中的标签

来自分类Dev

如何在计时器(分钟秒)中显示TimerFormat WPF vb.net

来自分类Dev

Gmap.net 仅显示多边形内的标记

来自分类Dev

当用户在 GMap.net 中移动时,如何获取单个标记以更新其位置

来自分类Dev

是否可以在 WPF 中使用 GMap.Net Windows Form dll?

来自分类Dev

如何为 WPF 创建计时器

来自分类Dev

GMAP.NET 左拖、隐藏重叠等