加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ArcGIS Desktop API – 检查渲染是否完成

发布时间:2020-12-15 06:20:26 所属栏目:百科 来源:网络整理
导读:我最近在C#中继承了一个大型项目,它使用ArcGIS来渲染一些区域计划.目前使用它的人不断抱怨该工具的性能极差,现在我的任务是使其更快. 当我第一次看代码时,我很害怕.充满30-60秒睡觉System.Threading.Sleep(30000);每次调用gis api后,都需要几分钟的时间才能
我最近在C#中继承了一个大型项目,它使用ArcGIS来渲染一些区域计划.目前使用它的人不断抱怨该工具的性能极差,现在我的任务是使其更快.

当我第一次看代码时,我很害怕.充满30-60秒睡觉System.Threading.Sleep(30000);每次调用gis api后,都需要几分钟的时间才能执行简单的操作.

经过一番测试,很明显,删除它们会导致草图不合格或装满文物,只是因为在执行下一步操作之前场景尚未完全渲染.

我的问题很简单有没有办法获取渲染的ArcGIS的当前状态,所以,而不是等待“默认”30秒,我可以停止该工具,直到ArcGis将当前视图标记为准备好?

谢谢

编辑:示例代码

doc.ActiveView = (IActiveView)doc.PageLayout;
doc.ActiveView.ContentsChanged();
System.Threading.Thread.Sleep(5000);
doc.PageLayout.ZoomToWhole();    
System.Threading.Thread.Sleep(30000);

我可以提供更多的代码片段,但我认为这个问题比较通用,而不是直接与我的代码相关.

解决方法

我已经快速浏览了这些文档,并找到以下内容:

> IPageLayoutControlEvents
> IActiveViewEvents

看起来它们很有用,特别是“AfterDraw”事件.我想象你可以听取相关的事件,根据需要启用/禁用你的工具.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读