前台和后台处理
通过在标准 工具条上单击地理处理 > 地理处理选项,您可控制工具是在前台还是后台执行。
后台处理面板用于控制工具在前台模式还是后台模式下执行。
- 如果选中启用,工具会在后台执行,并且您可在工具执行时继续使用 ArcMap(或其他 ArcGIS 应用程序,例如 ArcGlobe)。文档底部将出现一个进度条显示当前所执行工具的名称。工具执行完毕后,系统托盘中将显示一个弹出通知。可通过移动通知滑块来控制通知消息出现的时间长度,也可通过将滑块移至最左端来禁用消息。
- 如果未选中启用,工具会在前台执行。当一个工具在前台模式下执行时,您必须先等到工具停止执行,然后才能继续进行其他工作。
后台处理
在使用工具的对话框或在 Python 窗口中执行工具时,您将看见如下所示的工具进度。
此外,您还可在结果 窗口中跟踪进度。单击弹出的消息将会直接打开包含工具执行消息的结果 窗口。
当某个工具正在后台运行时,您可通过使用该工具对话框来提交更多将被运行的工具。在后台仅能运行一个工具,其他所有工具都将挂起(等待运行)。某个工具完成执行后,下一个挂起的工具将开始执行。
如果有多个工具在后台运行,则将无法开始编辑会话。如果有多个工具在后台运行,则会显示一个消息框来通知编辑会话无法开始。必须先让所有在后台运行的地理处理工具完成操作(或将其取消),然后才能开始编辑会话。
在使用后台处理的情况下,如果您在 Python 窗口中执行工具,则在工具已完成执行之前,您将无法使用 Python 窗口。
默认情况下,自定义模型和脚本工具在前台运行
默认情况下,即使您已启用后台处理,您的自定义模型和脚本工具仍会在前台运行。要允许自定义工具在后台运行,必须执行以下两项操作:
- 确保您的工具遵循在后台运行自定义(模型或脚本)工具中所指定的指导原则。
- 右键单击您的自定义模型或脚本工具,然后单击属性。在常规选项卡上,取消选中始终在前台中运行。
当工具在后台运行时,受影响的 ArcMap 图层将会被锁定
当地理处理工具的输出是地图中的一个图层(如使用按属性选择图层工具)时,或者工具修改了输入数据(如添加字段工具或编辑工具箱中的任一工具)时,图层将会在工具正在运行时被锁定。一个锁图标将会出现在内容列表的图层上方,以表示该图层被锁定以进行处理。在图层被锁定时对地图显示进行的任何刷新都将导致该图层不被绘制。工具已完成处理后,地图显示即会刷新,并且您可重新开始使用该图层。
取消在后台运行的工具执行操作
要取消在后台运行的工具执行操作,请打开结果 窗口,然后查找当前正在执行的工具(该工具的旁边会显示一个沙漏图标或处理时钟图标)。右键单击所找到的工具,接着单击取消。此方法还可用于取消尚未运行的排队任务。
当工具收到取消指令时,会尝试做一些清除工作,删除所创建的所有数据并发出警告消息。根据工具所执行的清理工作类型,取消操作可能会花费一些时间。
系统工具可在前台执行(即使已启用后台)
在下述情况下,即使已启用了后台处理,工具仍会在前台执行:
- 如果您正在编辑数据,则所有地理处理工具都在前台执行。即使您正在编辑的数据不由地理处理工具使用,ArcGIS 仍会在前台执行所有工具。这是为了防止出现正在后台运行的工具修改您正在编辑的数据的情况。
- 如果打开“模型构建器”窗口并运行模型,则模型中的所有进程都在前台执行。在“模型构建器”窗口中进行的操作与一个编辑会话相类似。任何在前台执行的进程都会执行这样的操作,以防出现因更改工作流而导致不良后果的情况。
- 由于数据锁定和完整性的需要,某些系统工具(如升级地理数据库(Geodatabase) 工具)始终在前台运行。如果其他系统工具需要访问当前地图文档,则这些工具可能会在前台运行。
当工具在后台等待或运行时退出应用程序
在 ArcMap、ArcGlobe 或 ArcScene 中,您可在工具正在运行或挂起时退出并保存文档。如果退出,则所有正在运行的工具都将会停止。在已保存文档的结果 窗口中,正在运行和挂起的工具的状态将被更改为“未运行”。这些条目将具有沙漏图标,并可通过右键单击该结果和单击重新运行来进行运行。
退出 ArcCatalog 时,正在运行或挂起的工具将会立即停止。工具的结果将被移至结果 窗口的未运行部分。工具可通过以前提到的相同方式进行返回。
前台处理
当后台处理不可用时,工具会在前台执行,并且您必须先等待进程完成,然后才能重新使用应用程序。工具开始执行后,即会显示进度对话框,如下所示。单击详细信息以查看执行消息。
警告消息将在工具的消息中以绿色文本的形式进行显示,且其前面加有 WARNING 后跟数值代码。警告意味着输出可能不包含您所期望的内容。在如下所示的情况中,工具创建了空输出。数值代码是超链接,您可单击此超链接来查看对于警告和可能的解决方案的完整描述。
错误消息以红色文本显示,且其前面加有 ERROR 后跟数值代码。
在执行工具并关闭进度对话框后,您即可在结果 窗口中从各个方面查看工具的执行情况。
取消在前台运行的工具执行操作
在工具执行期间,您可通过在进度对话框中单击取消按钮取消执行。
当工具收到取消指令时,会尝试做一些清除工作,删除所创建的所有数据并发出警告消息。根据工具所执行的清理工作类型,取消操作可能会花费一些时间。
性能注意事项
后台处理可被视为另一个 ArcMap 会话在计算机上运行,只是 ArcMap 窗口并未打开。这种额外进程(会话)会在工具首次于后台执行时启动,并一直保持到您退出 ArcMap 会话时为止。当后台进程启动时,您会注意到在第一次工具执行时会出现短暂的延迟。
在使用大型数据集时,某些地理处理工具,尤其是那些使用切片处理的工具,需要可供使用的足量计算机资源(内存和 CPU)。如果您所提交的用于后台处理的工具因可用内存不足而失败(错误“000426:内存不足”或错误“999998:异常错误”),则可尝试执行以下操作:
- 识别并退出占用大量内存但并不重要的应用程序。
- 通过地理处理选项 对话框(地理处理 > 地理处理选项)禁用后台处理。这将关闭后台进程并释放资源。
- 重新运行此工具。
通过执行以上步骤,可绕过后台处理;额外后台进程将不会启动,并且该进程所消耗的资源现已可供工具使用。当工具正在执行时,请避免启动任何占用大量内存的应用程序。
实际上,后台处理会启动两个进程。可通过 Windows 任务管理器 观察后台进程。在进程选项卡中,您将看到两个构成后台处理的进程:一个是 ArcSOMP.exe,另一个是 ArcSOCP.exe。切勿通过任务管理器结束这些进程,否则可能会导致结果异常。当父应用程序(ArcMap、ArcCatalog 等)与这些进程之间的连接断开时,这些进程会在父应用程序关闭后的 10 分钟内被自动清理。