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

前端之家收集整理的这篇文章主要介绍了c# – ArcGIS Desktop 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”事件.我想象你可以听取相关的事件,根据需要启用/禁用你的工具.

猜你在找的C#相关文章