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 UI

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

VB.net-计时器未更新

来自分类Dev

WPF C#-计时器倒数

来自分类Dev

WPF中Dispatcher计时器的性能

来自分类Dev

如何为 WPF 创建计时器

来自分类Dev

地图控件Gmap.net崩溃

来自分类Dev

Gmap.net缓存如何工作?

来自分类Dev

如何打印GMap.NET地图?

来自分类Dev

Gmap.net中的图像tiff

来自分类Dev

Gmap.net缓存如何工作?

来自分类Dev

地图控件Gmap.net崩溃

来自分类Dev

如何打印GMap.NET地图?

来自分类Dev

GMap.NET获得经度和纬度

来自分类Dev

移除gmap.net中的标签

来自分类Dev

GMAP.NET 左拖、隐藏重叠等

来自分类Dev

WPF中分派器计时器的性能

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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