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 看起来它们很有用,特别是“AfterDraw”事件.我想象你可以听取相关的事件,根据需要启用/禁用你的工具. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |