首页 / 浏览问题 / 组件GIS / 问题详情
iObject操作动态图层时程序卡死
2EXP 2020年12月07日

使用产品:iobject10i,操作系统:win10 64位,开发框架WPF,.net4.7.2, 64位

数据类型:文件型工作空间以及文件型数据源,均在exe文件根目录下

问题描述:尝试读取或写入受保护的内存...

问题重现步骤:操作动态图层对象时发生。

private void timer_Tick(object sender, EventArgs e)
        {
            try 
            {
                GeoStyle geoStyle = new GeoStyle()
                {
                    MarkerSymbolID = 0,
                    MarkerSize = new Size2D(4, 4),
                    LineColor = System.Drawing.Color.Red
                };
                GeoPoint geo = features[m_updateCount].GetGeometry() as GeoPoint;
                geo.Style = geoStyle;
                dynamicLayer1.Clear();
                dynamicLayer1.Add(geo, "mn");
                //if (m_updateCount == 1)
                //{
                //    int i = dynamicLayer1.Add(geo, "mn");
                //}
                //else
                //{
                //    bool s = dynamicLayer1.Set("mn", geo);
                //}

                m_updateCount++;
            }
            catch(Exception ex)
            {
                LogTextHelper.Info(ex);
            }
        }

features是DatasetVector对象的GetAllFeatures方法获取到的Dictionary<int, Feature>字典,其内均为矢量点数据。

timer_Tick是3秒钟一次的计时器,内部主要是去更新动态图层的对象,但是每次基本timer_Tick执行个几次就直接卡死无法操作,这里面逻辑很简单,不知道为什么会卡死。

1个回答

代码这么看是没什么问题,你将对应的程序整理成一个能重现问题的小demo,传到百度网盘,发出来看一下
4,620EXP 2020年12月08日
...