小编Zor*_*leQ的帖子

ArcGIS Desktop API - 检查渲染是否已完成

我最近在C#中继承了一个大型项目,该项目使用ArcGIS来渲染一些区域计划.目前正在使用它的人一直在抱怨该工具的性能极差,现在我的任务是让它更快.

当我第一次看到代码时,我感到害怕.System.Threading.Sleep(30000);每次打电话给gis api后都会有30-60s的睡眠时间,导致需要几分钟的简单动作.

经过一些测试后,很明显删除它们导致草图无法完成或充满了瑕疵,原因很简单,因为在执行下一步操作之前场景尚未完全呈现.

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

谢谢

编辑:示例代码

doc.ActiveView = (IActiveView)doc.PageLayout;
doc.ActiveView.ContentsChanged();
System.Threading.Thread.Sleep(5000);
doc.PageLayout.ZoomToWhole();    
System.Threading.Thread.Sleep(30000);
Run Code Online (Sandbox Code Playgroud)

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

c# arcgis

10
推荐指数
1
解决办法
484
查看次数

为什么字符串散列哈希值为哈希返回哈希?

我正在阅读PHP中的密码安全性,我偶然发现了一个有趣的声明:

使用散列散列密码作为salt返回相同的散列

没有多想,我去了php.net,发现说的是同样的事情.

我们来看一个例子:

crypt("test", "test"); -> teH0wLIpW0gyQ
crypt("test", "teH0wLIpW0gyQ"); -> teH0wLIpW0gyQ
Run Code Online (Sandbox Code Playgroud)

我完全可以理解PHP中的crypt会生成给定字符串的单向散列.

  1. 我不明白的是我们如何使用两种完全不同的盐获得相同的哈希输出?
  2. 这是否意味着可能有其他盐可能会给我相同的哈希值?

跟进

谢谢大家的指示.我现在可以看到默认行为是只使用salt的前两个字符,这完全回答了我的所有问题.感觉像傻事,但......

php security passwords hash

6
推荐指数
2
解决办法
541
查看次数

Excel - 屏幕更新时屏幕闪烁

我从“停止 Excel 屏幕闪烁”这一长串问题中得到了另一个问题,但我认为这个问题有点棘手。

我有一位客户在宏执行期间需要在电子表格上显示“进度”栏。我所做的是,我有一个链接到 2 个单元格的饼图,我根据进度进行调整。为了性能,我禁用了events,ScreenUpdating并更改了calculation to manual.

然后,偶尔我会快速切换ScreenUpdating on and off以实际更新进度表。每次我使用它时(现在有超过 30 个项目),它就像一个魅力。

最近,客户带着一个“大”问题回来找我。每当我快速切换以刷新进度表时,整个 Excel 屏幕(包括其中的所有项目)都会闪烁,这让那家伙抓狂。

有谁知道可以用它做什么来保持图表更新,同时保持首页不断显示(宏在页面之间跳转)而不出现屏幕闪烁?比如双缓冲之类的...

解决方案

不管你信不信,但我刚刚找到了解决方案。这太简单了。在 VBA 中,可以仅刷新特定对象,而其余屏幕保持“锁定”状态。例如:

ThisWorkbook.Worksheets("Welcome").ChartObjects(1).Chart.Refresh
Run Code Online (Sandbox Code Playgroud)

感谢大家的意见。

excel vba

5
推荐指数
1
解决办法
9960
查看次数

标签 统计

arcgis ×1

c# ×1

excel ×1

hash ×1

passwords ×1

php ×1

security ×1

vba ×1