PS 连接/断开连接和多线程
EHLLAPI 应用程序必须通过调用 ConnectPS 和 DisconnectPS EHLLAPI 函数来管理与不同会话的连接。应用程序必须仔细编码,以避免无限期地连接到会话,因为会话必须由所有 EHLLAPI 应用程序共享。在使用某些其他 EHLLAPI 函数之前,还必须确保应用程序已连接到会话。
HACL 不要求应用程序进行任何显式会话连接或断开连接。每个 HACL 对象在构造时都与特定的连接(会话)相关联。要访问不同的连接,应用程序只需要为每个连接创建对象。例如,以下示例会将击键 ABC 发送到会话 A,然后将 DEF 发送到会话 B,然后将 Enter 键发送到会话 A。在 EHLLAPI 程序中,应用程序必须连接/断开每个会话,因为它一次只能与一个会话交互。HACL 应用程序可以按所需的任何顺序使用对象:
ECLPS *PSA, *PSB;
PSA = new ECLPS('A');
PSB = new ECLPS('B');
PSA->Sendkeys("ABC");
PSB->Sendkeys("DEF");
PSA->Sendkeys("[enter]");对于与多个连接(会话)交互的应用程序,这可以大大简化管理多个连接所需的代码。
除了单个工作会话外,EHLLAPI 还对应用程序的多线程性质进行了限制。当应用程序具有多个调用 EHLLAPI 接口的线程时,必须小心管理连接到表示空间和断开与表示空间的连接。即使有多个线程,应用程序也一次只能与一个会话交互。
ECLPS 不会对应用程序施加任何特定的多线程限制。应用程序可以与任意数量的线程上的任意数量的会话并发交互。